From ab7f70167100b69dc66f988d2df0bbd639f405be Mon Sep 17 00:00:00 2001 From: zeripath Date: Mon, 24 Jan 2022 22:54:35 +0000 Subject: Make WrappedQueues and PersistableChannelUniqueQueues Pausable (#18393) Implements the Pausable interface on WrappedQueues and PersistableChannelUniqueQueues Reference #15928 Signed-off-by: Andrew Thornton art27@cantab.net --- modules/queue/unique_queue_disk_channel.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'modules/queue/unique_queue_disk_channel.go') diff --git a/modules/queue/unique_queue_disk_channel.go b/modules/queue/unique_queue_disk_channel.go index 7fc304b17e..ac7919926f 100644 --- a/modules/queue/unique_queue_disk_channel.go +++ b/modules/queue/unique_queue_disk_channel.go @@ -239,6 +239,26 @@ func (q *PersistableChannelUniqueQueue) IsEmpty() bool { return q.channelQueue.IsEmpty() } +// IsPaused will return if the pool or queue is paused +func (q *PersistableChannelUniqueQueue) IsPaused() bool { + return q.channelQueue.IsPaused() +} + +// Pause will pause the pool or queue +func (q *PersistableChannelUniqueQueue) Pause() { + q.channelQueue.Pause() +} + +// Resume will resume the pool or queue +func (q *PersistableChannelUniqueQueue) Resume() { + q.channelQueue.Resume() +} + +// IsPausedIsResumed will return a bool indicating if the pool or queue is paused and a channel that will be closed when it is resumed +func (q *PersistableChannelUniqueQueue) IsPausedIsResumed() (paused, resumed <-chan struct{}) { + return q.channelQueue.IsPausedIsResumed() +} + // Shutdown processing this queue func (q *PersistableChannelUniqueQueue) Shutdown() { log.Trace("PersistableChannelUniqueQueue: %s Shutting down", q.delayedStarter.name) -- cgit v1.2.3