mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Only attempt to flush queue if the underlying worker pool is not finished (#18593)
* Only attempt to flush queue if the underlying worker pool is not finished There is a possible race whereby a worker pool could be cancelled but yet the underlying queue is not empty. This will lead to flush-all cycling because it cannot empty the pool. Signed-off-by: Andrew Thornton <art27@cantab.net> * Apply suggestions from code review Co-authored-by: Gusted <williamzijl7@hotmail.com> Co-authored-by: Gusted <williamzijl7@hotmail.com>
This commit is contained in:
		@@ -74,6 +74,11 @@ func NewWorkerPool(handle HandlerFunc, config WorkerPoolConfiguration) *WorkerPo
 | 
			
		||||
	return pool
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Done returns when this worker pool's base context has been cancelled
 | 
			
		||||
func (p *WorkerPool) Done() <-chan struct{} {
 | 
			
		||||
	return p.baseCtx.Done()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Push pushes the data to the internal channel
 | 
			
		||||
func (p *WorkerPool) Push(data Data) {
 | 
			
		||||
	atomic.AddInt64(&p.numInQueue, 1)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user