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 | |
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')
-rw-r--r-- | rpc/packages.go | 11 | ||||
-rw-r--r-- | rpc/packages_test.go | 1 | ||||
-rw-r--r-- | rpc/util.go | 2 |
3 files changed, 7 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) } } diff --git a/rpc/packages_test.go b/rpc/packages_test.go index 037fd78b3..a9fc16cd3 100644 --- a/rpc/packages_test.go +++ b/rpc/packages_test.go @@ -7,6 +7,7 @@ import ( ) func TestFilterClose(t *testing.T) { + t.Skip() api := &EthereumApi{ logs: make(map[int]*logFilter), messages: make(map[int]*whisperFilter), diff --git a/rpc/util.go b/rpc/util.go index 1939b3474..00a418783 100644 --- a/rpc/util.go +++ b/rpc/util.go @@ -108,6 +108,7 @@ func toLogs(logs state.Logs) (ls []Log) { type whisperFilter struct { messages []xeth.WhisperMessage timeout time.Time + id int } func (w *whisperFilter) add(msgs ...xeth.WhisperMessage) { @@ -123,6 +124,7 @@ func (w *whisperFilter) get() []xeth.WhisperMessage { type logFilter struct { logs state.Logs timeout time.Time + id int } func (l *logFilter) add(logs ...state.Log) { |