Skip to content

Commit

Permalink
Merge pull request #466 from libp2p/fix/timer-leak
Browse files Browse the repository at this point in the history
fix(dialqueue): fix a timer leak
  • Loading branch information
Stebalien committed Feb 28, 2020
2 parents 4838fd5 + d4818f1 commit 3eac211
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions dial_queue.go
Original file line number Diff line number Diff line change
Expand Up @@ -294,6 +294,7 @@ func (dq *dialQueue) worker() {
// This idle timer tracks if the environment is slow. If we're waiting to long to acquire a peer to dial,
// it means that the DHT query is progressing slow and we should shrink the worker pool.
idleTimer := time.NewTimer(24 * time.Hour) // placeholder init value which will be overridden immediately.
defer idleTimer.Stop()
for {
// trap exit signals first.
select {
Expand All @@ -308,6 +309,11 @@ func (dq *dialQueue) worker() {
select {
case <-idleTimer.C:
default:
// NOTE: There is a slight race here. We could be in the
// middle of firing the timer and not read anything from the channel.
//
// However, that's not really a huge issue. We'll think
// we're idle but that's fine.
}
idleTimer.Reset(dq.config.maxIdle)

Expand Down

0 comments on commit 3eac211

Please sign in to comment.