Fix timer problems on shutdown
Change-Id: I697081cb62445a143029d22875afac7307189fd0
diff --git a/framework/delibs/deutil/deTimer.c b/framework/delibs/deutil/deTimer.c
index 1218d7f..320e44f 100644
--- a/framework/delibs/deutil/deTimer.c
+++ b/framework/delibs/deutil/deTimer.c
@@ -336,14 +336,14 @@
if (sleepTime > 0)
deSleep(sleepTime);
+ if (thread->state == TIMERSTATE_DISABLED)
+ break;
+
lastCallback = (deInt64)deGetMicroseconds();
thread->callback(thread->callbackArg);
numCallbacks += 1;
}
- /* State lock is held when loop is exited. */
- deMutex_unlock(thread->lock);
-
if (destroy)
{
/* Destroy thread except thread->thread. */