1
0
Fork 0
forgejo/modules/queue
zeripath c58bc4bf80
Prevent timer leaks in Workerpool and others (#11333)
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>
2020-05-08 16:46:05 +01:00
..
bytefifo.go
helper.go
manager.go
queue.go
queue_bytefifo.go
queue_channel.go
queue_channel_test.go
queue_disk.go
queue_disk_channel.go
queue_disk_channel_test.go
queue_disk_test.go
queue_redis.go
queue_test.go
queue_wrapped.go
setting.go
unique_queue.go
unique_queue_channel.go
unique_queue_disk.go
unique_queue_disk_channel.go
unique_queue_redis.go
unique_queue_wrapped.go
workerpool.go