rem: HFree (thread);
add: FinishThread (thread);
context: ThreadHelper (void *startInfo) {	ThreadFunction func;	void *data;	SDL_sem *sem;	TrueThread thread;	int result;		func = ((struct ThreadStartInfo *) startInfo)->func;	data = ((struct ThreadStartInfo *) startInfo)->data;	sem  = ((struct ThreadStartInfo *) startInfo)->sem;	// Wait until the Thread structure is available.	SDL_SemWait (sem);	SDL_DestroySemaphore (sem);	thread = ((struct ThreadStartInfo *) startInfo)->thread;	HFree (startInfo);	result = (*func) (data);#ifdef DEBUG_THREADS	fprintf (stderr, "Thread '%s' done (returned %d).\n",			thread->name, result);	fflush (stderr);#endif	UnQueueThread (thread);	DestroyThreadLocal (thread->localData);	HFree (thread);	return result;}