aboutsummaryrefslogtreecommitdiffstats
path: root/rpc/packages.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-24 02:25:50 +0800
committerobscuren <geffobscura@gmail.com>2015-02-24 02:25:50 +0800
commit747647e02a310e75ea1ada335ff99963972ca138 (patch)
tree52a7d2d8d2f36f9c3cd0eacefeeb5c5203a65618 /rpc/packages.go
parent0b57bad2de08f382c1b36045db4c66b84d207d3b (diff)
parentb2a225a52e45315f3ec90e11707fefa6059d13f5 (diff)
downloadgo-tangerine-747647e02a310e75ea1ada335ff99963972ca138.tar.gz
go-tangerine-747647e02a310e75ea1ada335ff99963972ca138.tar.zst
go-tangerine-747647e02a310e75ea1ada335ff99963972ca138.zip
Merge branch 'master' into develop
Diffstat (limited to 'rpc/packages.go')
-rw-r--r--rpc/packages.go11
1 files changed, 4 insertions, 7 deletions
diff --git a/rpc/packages.go b/rpc/packages.go
index b51bde7ce..571f3a300 100644
--- a/rpc/packages.go
+++ b/rpc/packages.go
@@ -126,10 +126,6 @@ func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error
self.logMut.Lock()
defer self.logMut.Unlock()
- if self.logs[id] == nil {
- self.logs[id] = &logFilter{timeout: time.Now()}
- }
-
self.logs[id].add(&state.StateLog{})
}
if args == "pending" {
@@ -139,6 +135,7 @@ func (self *EthereumApi) NewFilterString(args string, reply *interface{}) error
}
id = self.filterManager.InstallFilter(filter)
+ self.logs[id] = &logFilter{timeout: time.Now()}
*reply = id
return nil
@@ -377,12 +374,10 @@ func (p *EthereumApi) NewWhisperFilter(args *xeth.Options, reply *interface{}) e
args.Fn = func(msg xeth.WhisperMessage) {
p.messagesMut.Lock()
defer p.messagesMut.Unlock()
- if p.messages[id] == nil {
- p.messages[id] = &whisperFilter{timeout: time.Now()}
- }
p.messages[id].add(msg) // = append(p.messages[id], msg)
}
id = p.xeth.Whisper().Watch(args)
+ p.messages[id] = &whisperFilter{timeout: time.Now()}
*reply = id
return nil
}
@@ -623,12 +618,14 @@ done:
self.messagesMut.Lock()
for id, filter := range self.logs {
if time.Since(filter.timeout) > 20*time.Second {
+ self.filterManager.UninstallFilter(id)
delete(self.logs, id)
}
}
for id, filter := range self.messages {
if time.Since(filter.timeout) > 20*time.Second {
+ self.xeth.Whisper().Unwatch(id)
delete(self.messages, id)
}
}