diff --git a/FWCore/Concurrency/interface/LimitedTaskQueue.h b/FWCore/Concurrency/interface/LimitedTaskQueue.h index 5d436c8b7f51b..e792179dd7c2f 100644 --- a/FWCore/Concurrency/interface/LimitedTaskQueue.h +++ b/FWCore/Concurrency/interface/LimitedTaskQueue.h @@ -98,7 +98,9 @@ namespace edm { bool resume() { if(m_queue) { - return m_queue->resume(); + auto q = m_queue; + m_queue = nullptr; + return q->resume(); } return false; } diff --git a/FWCore/Concurrency/interface/SerialTaskQueue.h b/FWCore/Concurrency/interface/SerialTaskQueue.h index 6395a328562fc..ab07c4919ecd0 100644 --- a/FWCore/Concurrency/interface/SerialTaskQueue.h +++ b/FWCore/Concurrency/interface/SerialTaskQueue.h @@ -77,7 +77,7 @@ namespace edm { /**\return true if the queue is paused * \sa pause(), resume() */ - bool isPaused() const { return m_pauseCount.load()==0;} + bool isPaused() const { return m_pauseCount.load()!=0;} // ---------- member functions --------------------------- /// Pauses processing of additional tasks from the queue.