Permalink
Browse files

Core: Fix unpause callback

  • Loading branch information...
endrift committed Jul 16, 2018
1 parent d571d89 commit 070f318c15524a477efaa6755aa84809059411c4
Showing with 12 additions and 6 deletions.
  1. +12 −6 src/core/thread.c
View
@@ -201,23 +201,29 @@ static THREAD_ENTRY _mCoreThreadRun(void* context) {
while (impl->state > THREAD_MAX_RUNNING && impl->state < THREAD_EXITING) {
deferred = impl->state;
- if (impl->state == THREAD_INTERRUPTING) {
+ switch (deferred) {
+ case THREAD_INTERRUPTING:
impl->state = THREAD_INTERRUPTED;
ConditionWake(&impl->stateCond);
- }
-
- if (impl->state == THREAD_PAUSING) {
+ break;
+ case THREAD_PAUSING:
impl->state = THREAD_PAUSED;
- }
- if (impl->state == THREAD_RESETING) {
+ break;
+ case THREAD_RESETING:
impl->state = THREAD_RUNNING;
+ break;
+ default:
+ break;
}
if (deferred >= THREAD_MIN_DEFERRED && deferred <= THREAD_MAX_DEFERRED) {
break;
}
deferred = impl->state;
+ if (deferred == THREAD_INTERRUPTED) {
+ deferred = impl->savedState;
+ }
while (impl->state >= THREAD_WAITING && impl->state <= THREAD_MAX_WAITING) {
ConditionWait(&impl->stateCond, &impl->stateMutex);

0 comments on commit 070f318

Please sign in to comment.