diff options
Diffstat (limited to 'engines/illusions/thread.cpp')
-rw-r--r-- | engines/illusions/thread.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/engines/illusions/thread.cpp b/engines/illusions/thread.cpp index d12d11a81c..cea0b9728e 100644 --- a/engines/illusions/thread.cpp +++ b/engines/illusions/thread.cpp @@ -49,6 +49,9 @@ void Thread::onNotify() { void Thread::onPause() { } +void Thread::onUnpause() { +} + void Thread::onResume() { } @@ -72,6 +75,14 @@ void Thread::pause() { } } +void Thread::unpause() { + if (!_terminated) { + --_pauseCtr; + if (_pauseCtr == 0) + onUnpause(); + } +} + void Thread::resume() { if (!_terminated) { --_pauseCtr; @@ -246,6 +257,14 @@ void ThreadList::pauseThreads(uint32 threadId) { } } +void ThreadList::unpauseThreads(uint32 threadId) { + for (Iterator it = _threads.begin(); it != _threads.end(); ++it) { + Thread *thread = *it; + if (thread->_threadId != threadId) + thread->unpause(); + } +} + void ThreadList::suspendThreads(uint32 threadId) { for (Iterator it = _threads.begin(); it != _threads.end(); ++it) { Thread *thread = *it; |