Mercurial > sdl-ios-xcode
diff test/testlock.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 | 14717b52abc0 |
children | 4da1ee79c9af |
line wrap: on
line diff
--- a/test/testlock.c Sun May 21 17:27:13 2006 +0000 +++ b/test/testlock.c Sun May 28 13:04:16 2006 +0000 @@ -19,84 +19,92 @@ * SDL_Quit() shouldn't be used with atexit() directly because * calling conventions may differ... */ -static void SDL_Quit_Wrapper(void) +static void +SDL_Quit_Wrapper (void) +{ + SDL_Quit (); +} + +void +printid (void) +{ + printf ("Process %u: exiting\n", SDL_ThreadID ()); +} + +void +terminate (int sig) { - SDL_Quit(); + signal (SIGINT, terminate); + doterminate = 1; +} + +void +closemutex (int sig) +{ + Uint32 id = SDL_ThreadID (); + int i; + printf ("Process %u: Cleaning up...\n", id == mainthread ? 0 : id); + for (i = 0; i < 6; ++i) + SDL_KillThread (threads[i]); + SDL_DestroyMutex (mutex); + exit (sig); } -void printid(void) -{ - printf("Process %u: exiting\n", SDL_ThreadID()); -} - -void terminate(int sig) -{ - signal(SIGINT, terminate); - doterminate = 1; -} -void closemutex(int sig) -{ - Uint32 id = SDL_ThreadID(); - int i; - printf("Process %u: Cleaning up...\n", id == mainthread ? 0 : id); - for ( i=0; i<6; ++i ) - SDL_KillThread(threads[i]); - SDL_DestroyMutex(mutex); - exit(sig); -} -int SDLCALL Run(void *data) +int SDLCALL +Run (void *data) { - if ( SDL_ThreadID() == mainthread ) - signal(SIGTERM, closemutex); - while ( 1 ) { - printf("Process %u ready to work\n", SDL_ThreadID()); - if ( SDL_mutexP(mutex) < 0 ) { - fprintf(stderr, "Couldn't lock mutex: %s", SDL_GetError()); - exit(1); - } - printf("Process %u, working!\n", SDL_ThreadID()); - SDL_Delay(1*1000); - printf("Process %u, done!\n", SDL_ThreadID()); - if ( SDL_mutexV(mutex) < 0 ) { - fprintf(stderr, "Couldn't unlock mutex: %s", SDL_GetError()); - exit(1); - } - /* If this sleep isn't done, then threads may starve */ - SDL_Delay(10); - if (SDL_ThreadID() == mainthread && doterminate) { - printf("Process %u: raising SIGTERM\n", SDL_ThreadID()); - raise(SIGTERM); - } - } - return(0); + if (SDL_ThreadID () == mainthread) + signal (SIGTERM, closemutex); + while (1) { + printf ("Process %u ready to work\n", SDL_ThreadID ()); + if (SDL_mutexP (mutex) < 0) { + fprintf (stderr, "Couldn't lock mutex: %s", SDL_GetError ()); + exit (1); + } + printf ("Process %u, working!\n", SDL_ThreadID ()); + SDL_Delay (1 * 1000); + printf ("Process %u, done!\n", SDL_ThreadID ()); + if (SDL_mutexV (mutex) < 0) { + fprintf (stderr, "Couldn't unlock mutex: %s", SDL_GetError ()); + exit (1); + } + /* If this sleep isn't done, then threads may starve */ + SDL_Delay (10); + if (SDL_ThreadID () == mainthread && doterminate) { + printf ("Process %u: raising SIGTERM\n", SDL_ThreadID ()); + raise (SIGTERM); + } + } + return (0); } -int main(int argc, char *argv[]) +int +main (int argc, char *argv[]) { - int i; - int maxproc = 6; + int i; + int maxproc = 6; - /* Load the SDL library */ - if ( SDL_Init(0) < 0 ) { - fprintf(stderr, "%s\n", SDL_GetError()); - exit(1); - } - atexit(SDL_Quit_Wrapper); + /* Load the SDL library */ + if (SDL_Init (0) < 0) { + fprintf (stderr, "%s\n", SDL_GetError ()); + exit (1); + } + atexit (SDL_Quit_Wrapper); - if ( (mutex=SDL_CreateMutex()) == NULL ) { - fprintf(stderr, "Couldn't create mutex: %s\n", SDL_GetError()); - exit(1); - } + if ((mutex = SDL_CreateMutex ()) == NULL) { + fprintf (stderr, "Couldn't create mutex: %s\n", SDL_GetError ()); + exit (1); + } - mainthread = SDL_ThreadID(); - printf("Main thread: %u\n", mainthread); - atexit(printid); - for ( i=0; i<maxproc; ++i ) { - if ( (threads[i]=SDL_CreateThread(Run, NULL)) == NULL ) - fprintf(stderr, "Couldn't create thread!\n"); - } - signal(SIGINT, terminate); - Run(NULL); + mainthread = SDL_ThreadID (); + printf ("Main thread: %u\n", mainthread); + atexit (printid); + for (i = 0; i < maxproc; ++i) { + if ((threads[i] = SDL_CreateThread (Run, NULL)) == NULL) + fprintf (stderr, "Couldn't create thread!\n"); + } + signal (SIGINT, terminate); + Run (NULL); - return(0); /* Never reached */ + return (0); /* Never reached */ }