Refactor updateFilterMapsHeads to Use Timer Instead of time.After

This commit is contained in:
lukema95 2025-10-13 20:21:28 +08:00
parent 5c6ba6b400
commit 22deabb725
No known key found for this signature in database

View file

@ -502,14 +502,20 @@ func (s *Ethereum) updateFilterMapsHeads() {
} }
setHead(s.blockchain.CurrentBlock()) setHead(s.blockchain.CurrentBlock())
timer := time.NewTimer(time.Second * 10)
defer timer.Stop()
for { for {
select { select {
case ev := <-headEventCh: case ev := <-headEventCh:
setHead(ev.Header) setHead(ev.Header)
timer.Reset(time.Second * 10)
case blockProc := <-blockProcCh: case blockProc := <-blockProcCh:
s.filterMaps.SetBlockProcessing(blockProc) s.filterMaps.SetBlockProcessing(blockProc)
case <-time.After(time.Second * 10): timer.Reset(time.Second * 10)
case <-timer.C:
setHead(s.blockchain.CurrentBlock()) setHead(s.blockchain.CurrentBlock())
timer.Reset(time.Second * 10)
case ch := <-s.closeFilterMaps: case ch := <-s.closeFilterMaps:
close(ch) close(ch)
return return