forked from cerc-io/plugeth
Consolidate related items
This commit is contained in:
parent
c8e9abff53
commit
2e3a6e2559
73
rpc/api.go
73
rpc/api.go
@ -25,8 +25,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
defaultGasPrice = big.NewInt(10000000000000)
|
defaultGasPrice = big.NewInt(10000000000000)
|
||||||
defaultGas = big.NewInt(10000)
|
defaultGas = big.NewInt(10000)
|
||||||
|
filterTickerTime = 15 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
type EthereumApi struct {
|
type EthereumApi struct {
|
||||||
@ -62,6 +63,39 @@ func NewEthereumApi(eth *xeth.XEth) *EthereumApi {
|
|||||||
return api
|
return api
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (self *EthereumApi) start() {
|
||||||
|
timer := time.NewTicker(filterTickerTime)
|
||||||
|
done:
|
||||||
|
for {
|
||||||
|
select {
|
||||||
|
case <-timer.C:
|
||||||
|
self.logMut.Lock()
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
self.logMut.Unlock()
|
||||||
|
self.messagesMut.Unlock()
|
||||||
|
case <-self.quit:
|
||||||
|
break done
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *EthereumApi) stop() {
|
||||||
|
close(self.quit)
|
||||||
|
}
|
||||||
|
|
||||||
func (self *EthereumApi) Register(args string, reply *interface{}) error {
|
func (self *EthereumApi) Register(args string, reply *interface{}) error {
|
||||||
self.regmut.Lock()
|
self.regmut.Lock()
|
||||||
defer self.regmut.Unlock()
|
defer self.regmut.Unlock()
|
||||||
@ -600,38 +634,3 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
|
|||||||
rpclogger.DebugDetailf("Reply: %T %s", reply, reply)
|
rpclogger.DebugDetailf("Reply: %T %s", reply, reply)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
var filterTickerTime = 15 * time.Second
|
|
||||||
|
|
||||||
func (self *EthereumApi) start() {
|
|
||||||
timer := time.NewTicker(filterTickerTime)
|
|
||||||
done:
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-timer.C:
|
|
||||||
self.logMut.Lock()
|
|
||||||
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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
self.logMut.Unlock()
|
|
||||||
self.messagesMut.Unlock()
|
|
||||||
case <-self.quit:
|
|
||||||
break done
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *EthereumApi) stop() {
|
|
||||||
close(self.quit)
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user