return ret;
}
+ #if 0
+ Threads_int_Sleep(THREAD_STAT_QUEUESLEEP,
+ Queue, 0,
+ &Queue->Sleeper, NULL, &Queue->Protector);
+ #endif
// Go to sleep
SHORTLOCK(&glThreadListLock);
us = Threads_RemActive();
us->WaitPointer = Queue;
us->Status = THREAD_STAT_QUEUESLEEP;
Queue->Sleeper = us;
+
SHORTREL(&Queue->Protector);
SHORTREL(&glThreadListLock);
// Yield and sleep
- Threads_Yield();
- if(us->Status == THREAD_STAT_QUEUESLEEP) {
- // Why are we awake?!
- }
+ Threads_int_WaitForStatusEnd(THREAD_STAT_QUEUESLEEP);
us->WaitPointer = NULL;
}