summaryrefslogtreecommitdiff
path: root/rate.go
diff options
context:
space:
mode:
Diffstat (limited to 'rate.go')
-rw-r--r--rate.go11
1 files changed, 8 insertions, 3 deletions
diff --git a/rate.go b/rate.go
index a4b630e..0ab03ac 100644
--- a/rate.go
+++ b/rate.go
@@ -1,6 +1,7 @@
package main
import (
+ "log"
"sync"
"time"
)
@@ -21,17 +22,21 @@ func NewWatchList(n int, d time.Duration) WatchList {
func (w WatchList) Add(kick chan string, nick string) {
w.Lock()
defer w.Unlock()
+
if _, ok := w.list[nick]; !ok {
go func() {
<-time.After(w.d)
w.Lock()
+ defer w.Unlock()
+ log.Println(w.list[nick], "clear", nick)
delete(w.list, nick)
- w.Unlock()
}()
}
- w.list[nick]++
+
+ log.Println(w.list[nick], "hit", nick)
if w.list[nick] > w.n {
kick <- nick
}
- return
+
+ w.list[nick]++
}