+ assert(!sp || UseSleepingThreads);
+ assert(threadID != 0 || UseSleepingThreads);
+
+ if (threads[threadID].state == THREAD_INITIALIZING)
+ threads[threadID].state = THREAD_AVAILABLE;
+
+ // Grab the lock to avoid races with wake_sleeping_thread()
+ lock_grab(&SleepLock[threadID]);