rem: SDL_SemPost (startInfo->sem);
add: ClearSemaphore (startInfo->sem);
context: CreateThreadAux (ThreadFunction func, void *data, SDWORD stackSize#ifdef THREAD_NAMES		, const char *name#endif		){	Thread thread;	struct ThreadStartInfo *startInfo;		thread = (struct Thread *) HMalloc (sizeof *thread);#ifdef THREAD_NAMES	thread->name = name;#endif#ifdef PROFILE_THREADS	thread->startTime = GetTimeCounter ();#endif	startInfo = (struct ThreadStartInfo *) HMalloc (sizeof (*startInfo));	startInfo->func = func;	startInfo->data = data;	startInfo->sem = CreateSemaphore (0);	startInfo->thread = thread;		thread->native = NativeCreateThread (ThreadHelper, (void *) startInfo,			stackSize ? stackSize + 32 : 0);	if (!NativeThreadOk (thread->native))	{		HFree (startInfo);		HFree (thread);		return NULL;	}	// The responsibility to free 'startInfo' and 'thread' is now by the new	// thread.	#ifdef THREAD_QUEUE	QueueThread (thread);#endif  /* THREAD_QUEUE */#ifdef DEBUG_THREADS	fprintf (stderr, "Thread '%s' created.\n", ThreadName (thread));	fflush (stderr);#endif	// Signal to the new thread that the thread structure is ready	// and it can begin to use it.	SDL_SemPost (startInfo->sem);	(void) stackSize;  /* Satisfying compiler (unused parameter) */	return thread;}