Mercurial > sdl-ios-xcode
diff src/thread/pthread/SDL_systhread.c @ 1662:782fd950bd46 SDL-1.3
Revamp of the video system in progress - adding support for multiple displays, multiple windows, and a full video mode selection API.
WARNING: None of the video drivers have been updated for the new API yet! The API is still under design and very fluid.
The code is now run through a consistent indent format:
indent -i4 -nut -nsc -br -ce
The headers are being converted to automatically generate doxygen documentation.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sun, 28 May 2006 13:04:16 +0000 |
parents | 1e8582152d44 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/src/thread/pthread/SDL_systhread.c Sun May 21 17:27:13 2006 +0000 +++ b/src/thread/pthread/SDL_systhread.c Sun May 28 13:04:16 2006 +0000 @@ -30,91 +30,99 @@ /* List of signals to mask in the subthreads */ static int sig_list[] = { - SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGCHLD, SIGWINCH, - SIGVTALRM, SIGPROF, 0 + SIGHUP, SIGINT, SIGQUIT, SIGPIPE, SIGALRM, SIGTERM, SIGCHLD, SIGWINCH, + SIGVTALRM, SIGPROF, 0 }; #ifdef __RISCOS__ /* RISC OS needs to know the main thread for * it's timer and event processing. */ int riscos_using_threads = 0; -Uint32 riscos_main_thread = 0; /* Thread running events */ +Uint32 riscos_main_thread = 0; /* Thread running events */ #endif - + -static void *RunThread(void *data) +static void * +RunThread (void *data) { - SDL_RunThread(data); - pthread_exit((void*)0); - return((void *)0); /* Prevent compiler warning */ + SDL_RunThread (data); + pthread_exit ((void *) 0); + return ((void *) 0); /* Prevent compiler warning */ } -int SDL_SYS_CreateThread(SDL_Thread *thread, void *args) +int +SDL_SYS_CreateThread (SDL_Thread * thread, void *args) { - pthread_attr_t type; - - /* Set the thread attributes */ - if ( pthread_attr_init(&type) != 0 ) { - SDL_SetError("Couldn't initialize pthread attributes"); - return(-1); - } - pthread_attr_setdetachstate(&type, PTHREAD_CREATE_JOINABLE); + pthread_attr_t type; - /* Create the thread and go! */ - if ( pthread_create(&thread->handle, &type, RunThread, args) != 0 ) { - SDL_SetError("Not enough resources to create thread"); - return(-1); - } + /* Set the thread attributes */ + if (pthread_attr_init (&type) != 0) { + SDL_SetError ("Couldn't initialize pthread attributes"); + return (-1); + } + pthread_attr_setdetachstate (&type, PTHREAD_CREATE_JOINABLE); + /* Create the thread and go! */ + if (pthread_create (&thread->handle, &type, RunThread, args) != 0) { + SDL_SetError ("Not enough resources to create thread"); + return (-1); + } #ifdef __RISCOS__ - if (riscos_using_threads == 0) { - riscos_using_threads = 1; - riscos_main_thread = SDL_ThreadID(); - } + if (riscos_using_threads == 0) { + riscos_using_threads = 1; + riscos_main_thread = SDL_ThreadID (); + } #endif - return(0); + return (0); } -void SDL_SYS_SetupThread(void) +void +SDL_SYS_SetupThread (void) { - int i; - sigset_t mask; + int i; + sigset_t mask; - /* Mask asynchronous signals for this thread */ - sigemptyset(&mask); - for ( i=0; sig_list[i]; ++i ) { - sigaddset(&mask, sig_list[i]); - } - pthread_sigmask(SIG_BLOCK, &mask, 0); + /* Mask asynchronous signals for this thread */ + sigemptyset (&mask); + for (i = 0; sig_list[i]; ++i) { + sigaddset (&mask, sig_list[i]); + } + pthread_sigmask (SIG_BLOCK, &mask, 0); #ifdef PTHREAD_CANCEL_ASYNCHRONOUS - /* Allow ourselves to be asynchronously cancelled */ - { int oldstate; - pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, &oldstate); - } + /* Allow ourselves to be asynchronously cancelled */ + { + int oldstate; + pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &oldstate); + } #endif } /* WARNING: This may not work for systems with 64-bit pid_t */ -Uint32 SDL_ThreadID(void) +Uint32 +SDL_ThreadID (void) { - return((Uint32)pthread_self()); + return ((Uint32) pthread_self ()); } -void SDL_SYS_WaitThread(SDL_Thread *thread) +void +SDL_SYS_WaitThread (SDL_Thread * thread) { - pthread_join(thread->handle, 0); + pthread_join (thread->handle, 0); } -void SDL_SYS_KillThread(SDL_Thread *thread) +void +SDL_SYS_KillThread (SDL_Thread * thread) { #ifdef PTHREAD_CANCEL_ASYNCHRONOUS - pthread_cancel(thread->handle); + pthread_cancel (thread->handle); #else #ifdef __FREEBSD__ #warning For some reason, this doesnt actually kill a thread - FreeBSD 3.2 #endif - pthread_kill(thread->handle, SIGKILL); + pthread_kill (thread->handle, SIGKILL); #endif } + +/* vi: set ts=4 sw=4 expandtab: */