| @ -1,40 +1,40 @@ | |||
| package main | |||
| import ( | |||
| "log" | |||
| "sync" | |||
| "time" | |||
| ) | |||
| type safeCounter struct { | |||
| v map[int]int | |||
| mux sync.Mutex | |||
| } | |||
| func (c *safeCounter) inc(key int) { | |||
| c.mux.Lock() | |||
| c.v[key]++ | |||
| c.mux.Unlock() | |||
| } | |||
| // func (c *safeCounter) val(key int) int { | |||
| // c.mux.Lock() | |||
| // defer c.mux.Unlock() | |||
| // return c.v[key] | |||
| // import ( | |||
| // "log" | |||
| // "sync" | |||
| // "time" | |||
| // ) | |||
| // | |||
| // type safeCounter struct { | |||
| // v map[int]int | |||
| // mux sync.Mutex | |||
| // } | |||
| // | |||
| // func (c *safeCounter) reset(key int) int { | |||
| // func (c *safeCounter) inc(key int) { | |||
| // c.mux.Lock() | |||
| // defer c.mux.Unlock() | |||
| // result := c.v[key] | |||
| // c.v[key] = 0 | |||
| // return result | |||
| // c.v[key]++ | |||
| // c.mux.Unlock() | |||
| // } | |||
| // | |||
| // // func (c *safeCounter) val(key int) int { | |||
| // // c.mux.Lock() | |||
| // // defer c.mux.Unlock() | |||
| // // return c.v[key] | |||
| // // } | |||
| // // | |||
| // // func (c *safeCounter) reset(key int) int { | |||
| // // c.mux.Lock() | |||
| // // defer c.mux.Unlock() | |||
| // // result := c.v[key] | |||
| // // c.v[key] = 0 | |||
| // // return result | |||
| // // } | |||
| // | |||
| // var queriesPerMinute safeCounter | |||
| // | |||
| // func printStat() { | |||
| // _, min, _ := time.Now().Clock() | |||
| // queriesPerMinute.inc(min) | |||
| // log.Printf("Processed %d requests\n", min) | |||
| // } | |||
| var queriesPerMinute safeCounter | |||
| func printStat() { | |||
| _, min, _ := time.Now().Clock() | |||
| queriesPerMinute.inc(min) | |||
| log.Printf("Processed %d requests\n", min) | |||
| } | |||