Pth threading bug fix
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%40398
This commit is contained in:
parent
60236871ea
commit
dee1deebe1
3 changed files with 12 additions and 11 deletions
10
src/SDL.c
10
src/SDL.c
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue