Commit dee1deeb authored by Sam Lantinga's avatar Sam Lantinga

Pth threading bug fix

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40398
parent 60236871
......@@ -150,6 +150,12 @@ int SDL_InitSubSystem(Uint32 flags)
int SDL_Init(Uint32 flags)
{
#if !defined(DISABLE_THREADS) && defined(ENABLE_PTH)
if (!pth_init()) {
return -1;
}
#endif
/* Clear the error message */
SDL_ClearError();
......@@ -223,6 +229,10 @@ void SDL_Quit(void)
/* Uninstall any parachute signal handlers */
SDL_UninstallParachute();
#if !defined(DISABLE_THREADS) && defined(ENABLE_PTH)
pth_kill();
#endif
}
/* Return the library version number */
......
......@@ -52,12 +52,6 @@ int SDL_ThreadsInit(void)
{
int retval;
#ifdef ENABLE_PTH
if (!pth_init()) {
return -1;
}
#endif
retval = 0;
/* Set the thread lock creation flag so that we can reuse an
existing lock on the system - since this mutex never gets
......@@ -86,10 +80,6 @@ void SDL_ThreadsQuit()
if ( mutex != NULL ) {
SDL_DestroyMutex(mutex);
}
#ifdef ENABLE_PTH
pth_kill();
#endif
}
/* Routines for manipulating the thread list */
......
......@@ -64,7 +64,8 @@ int SDL_SYS_CreateThread(SDL_Thread *thread, void *args)
pth_attr_set(type, PTH_ATTR_JOINABLE, TRUE);
/* Create the thread and go! */
if ( pth_spawn(type, RunThread, args) == NULL ) {
thread->handle = pth_spawn(type, RunThread, args);
if ( thread->handle == NULL ) {
SDL_SetError("Not enough resources to create thread");
return(-1);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment