diff options
author | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-02-24 18:27:22 +0800 |
---|---|---|
committer | Paweł Bylica <pawel.bylica@imapp.pl> | 2015-02-24 18:27:22 +0800 |
commit | 85f765a533b3be4fd4d44cd58b666adf6e011e17 (patch) | |
tree | 037b11c586b9b7726f41e321296c85da2d5a81b2 /rpc/packages.go | |
parent | 114c3b4efe7f30ab7be0bec013210e7b4c3d08d7 (diff) | |
parent | 7c510109cdcd6251724df6c7705b27043c3168f8 (diff) | |
download | dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar.gz dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar.bz2 dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar.lz dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar.xz dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.tar.zst dexon-85f765a533b3be4fd4d44cd58b666adf6e011e17.zip |
Merge remote-tracking branch 'upstream/develop' into evmjit
Diffstat (limited to 'rpc/packages.go')
-rw-r--r-- | rpc/packages.go | 11 |
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) } } |