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 Add Unique Queue infrastructure and move TestPullRequests to this (#9856) 2020-02-02 23:19:58 +00:00
queue_channel.go
queue_channel_test.go Fix Workerpool deadlock (#10283) 2020-02-15 18:44:58 +00:00
queue_disk.go
queue_disk_channel.go
queue_disk_channel_test.go
queue_disk_test.go
queue_redis.go Fix queue pop error and stat empty repository error (#10248) 2020-02-12 18:12:27 +08:00
queue_test.go
queue_wrapped.go Prevent timer leaks in Workerpool and others (#11333) 2020-05-08 16:46:05 +01:00
setting.go
unique_queue.go
unique_queue_channel.go
unique_queue_disk.go
unique_queue_disk_channel.go
unique_queue_redis.go Fix queue pop error and stat empty repository error (#10248) 2020-02-12 18:12:27 +08:00
unique_queue_wrapped.go
workerpool.go Prevent timer leaks in Workerpool and others (#11333) 2020-05-08 16:46:05 +01:00