There is a potential memory leak in `Workerpool` due to the intricacies of `time.Timer` stopping. Whenever a `time.Timer` is `Stop`ped its channel must be cleared using a `select` if the result of the `Stop()` is `false`. Unfortunately in `Workerpool` these were checked the wrong way round. However, there were a few other places that were not being checked. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> |
||
|---|---|---|
| .. | ||
| bytefifo.go | ||
| helper.go | ||
| manager.go | ||
| queue_bytefifo.go | ||
| queue_channel_test.go | ||
| queue_channel.go | ||
| queue_disk_channel_test.go | ||
| queue_disk_channel.go | ||
| queue_disk_test.go | ||
| queue_disk.go | ||
| queue_redis.go | ||
| queue_test.go | ||
| queue_wrapped.go | ||
| queue.go | ||
| setting.go | ||
| unique_queue_channel.go | ||
| unique_queue_disk_channel.go | ||
| unique_queue_disk.go | ||
| unique_queue_redis.go | ||
| unique_queue_wrapped.go | ||
| unique_queue.go | ||
| workerpool.go | ||