forked from cerc-io/plugeth
xeth: fix #1485, data race in fiilter creation and event firing
This commit is contained in:
parent
12bb743b35
commit
3642441ca3
@ -518,6 +518,9 @@ func (self *XEth) UninstallFilter(id int) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address []string, topics [][]string) int {
|
func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address []string, topics [][]string) int {
|
||||||
|
self.logMu.Lock()
|
||||||
|
defer self.logMu.Unlock()
|
||||||
|
|
||||||
var id int
|
var id int
|
||||||
filter := core.NewFilter(self.backend)
|
filter := core.NewFilter(self.backend)
|
||||||
filter.SetEarliestBlock(earliest)
|
filter.SetEarliestBlock(earliest)
|
||||||
@ -539,6 +542,9 @@ func (self *XEth) NewLogFilter(earliest, latest int64, skip, max int, address []
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *XEth) NewTransactionFilter() int {
|
func (self *XEth) NewTransactionFilter() int {
|
||||||
|
self.transactionMu.Lock()
|
||||||
|
defer self.transactionMu.Unlock()
|
||||||
|
|
||||||
var id int
|
var id int
|
||||||
filter := core.NewFilter(self.backend)
|
filter := core.NewFilter(self.backend)
|
||||||
filter.TransactionCallback = func(tx *types.Transaction) {
|
filter.TransactionCallback = func(tx *types.Transaction) {
|
||||||
@ -553,6 +559,9 @@ func (self *XEth) NewTransactionFilter() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (self *XEth) NewBlockFilter() int {
|
func (self *XEth) NewBlockFilter() int {
|
||||||
|
self.blockMu.Lock()
|
||||||
|
defer self.blockMu.Unlock()
|
||||||
|
|
||||||
var id int
|
var id int
|
||||||
filter := core.NewFilter(self.backend)
|
filter := core.NewFilter(self.backend)
|
||||||
filter.BlockCallback = func(block *types.Block, logs state.Logs) {
|
filter.BlockCallback = func(block *types.Block, logs state.Logs) {
|
||||||
|
Loading…
Reference in New Issue
Block a user