diff --git a/blockchain/client.go b/blockchain/client.go index 1c4f30e..3796468 100644 --- a/blockchain/client.go +++ b/blockchain/client.go @@ -116,10 +116,6 @@ func (c *Client) RegisterEventsListener(begin types.BlockNumber, callback Events } } - c.mu.Lock() - c.eventsListeners[idx] = callback - c.mu.Unlock() - stopped := false go func() { @@ -189,6 +185,12 @@ func (c *Client) RegisterEventsListener(begin types.BlockNumber, callback Events callback(events, header.Number, set.Block) } } + + c.mu.Lock() + if !stopped { + c.eventsListeners[idx] = callback + } + c.mu.Unlock() }() once := sync.Once{}