@@ -27,11 +27,13 @@ #include #include #include +#ifndef OF_MORPHOS extern void of_tlskey_thread_exited(void); +#endif static of_tlskey_t threadKey; OF_CONSTRUCTOR() { OF_ENSURE(of_tlskey_new(&threadKey)); @@ -49,11 +51,13 @@ ObtainSemaphore(&thread->semaphore); @try { thread->done = true; +#ifndef OF_MORPHOS of_tlskey_thread_exited(); +#endif if (thread->detached) detached = true; else if (thread->joinTask != NULL) Signal(thread->joinTask, (1ul << thread->joinSigBit));