Skip to content

Commit 70bc733

Browse files
authored
Merge pull request #1995 from CortexFoundation/dev
avoid timer leak
2 parents 248de73 + 63ad2fe commit 70bc733

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

ctxc/downloader/downloader.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -961,7 +961,12 @@ func (d *Downloader) fetchHeaders(p *peerConnection, from uint64) error {
961961
ancestor := from
962962
getHeaders(from)
963963

964-
//mode := d.getMode()
964+
headerCheckTimer := time.NewTimer(fsHeaderContCheck)
965+
defer headerCheckTimer.Stop()
966+
967+
headerDelayedTimer := time.NewTimer(fsHeaderContCheck)
968+
defer headerDelayedTimer.Stop()
969+
965970
for {
966971
select {
967972
case <-d.cancelCh:
@@ -1025,8 +1030,9 @@ func (d *Downloader) fetchHeaders(p *peerConnection, from uint64) error {
10251030
// Don't abort header fetches while the pivot is downloading
10261031
if !d.committed.Load() && pivot <= from {
10271032
p.log.Debug("No headers, waiting for pivot commit")
1033+
headerCheckTimer.Reset(fsHeaderContCheck)
10281034
select {
1029-
case <-time.After(fsHeaderContCheck):
1035+
case <-headerCheckTimer.C:
10301036
getHeaders(from)
10311037
continue
10321038
case <-d.cancelCh:
@@ -1097,8 +1103,9 @@ func (d *Downloader) fetchHeaders(p *peerConnection, from uint64) error {
10971103
} else {
10981104
// No headers delivered, or all of them being delayed, sleep a bit and retry
10991105
p.log.Trace("All headers delayed, waiting")
1106+
headerDelayedTimer.Reset(fsHeaderContCheck)
11001107
select {
1101-
case <-time.After(fsHeaderContCheck):
1108+
case <-headerDelayedTimer.C:
11021109
getHeaders(from)
11031110
continue
11041111
case <-d.cancelCh:

0 commit comments

Comments
 (0)