Mercurial > sdl-ios-xcode
view test/testerror.c @ 4441:e3033ab628a1
Fixed bug 978
Yann Leprince 2010-03-31 11:07:53 PDT
Please add a #serial line as below to sdl.m4 and increase the serial number
with each revision of this file. This allows using aclocal --install, thereby
enabling automatic updating of sdl.m4 in SDL-based packages that distribute it.
# serial 1
The complete documentation and rationale for #serial can be found in the
Automake documentation:
<http://www.gnu.org/software/automake/manual/html_node/Serials.html>.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 23 Apr 2010 02:19:34 -0700 |
parents | 0d1b16ee0bca |
children |
line wrap: on
line source
/* Simple test of the SDL threading code and error handling */ #include <stdio.h> #include <stdlib.h> #include <signal.h> #include "SDL.h" #include "SDL_thread.h" static int alive = 0; /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ static void quit(int rc) { SDL_Quit(); exit(rc); } int SDLCALL ThreadFunc(void *data) { /* Set the child thread error string */ SDL_SetError("Thread %s (%lu) had a problem: %s", (char *) data, SDL_ThreadID(), "nevermind"); while (alive) { printf("Thread '%s' is alive!\n", (char *) data); SDL_Delay(1 * 1000); } printf("Child thread error string: %s\n", SDL_GetError()); return (0); } int main(int argc, char *argv[]) { SDL_Thread *thread; /* Load the SDL library */ if (SDL_Init(0) < 0) { fprintf(stderr, "Couldn't initialize SDL: %s\n", SDL_GetError()); return (1); } /* Set the error value for the main thread */ SDL_SetError("No worries"); alive = 1; thread = SDL_CreateThread(ThreadFunc, "#1"); if (thread == NULL) { fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError()); quit(1); } SDL_Delay(5 * 1000); printf("Waiting for thread #1\n"); alive = 0; SDL_WaitThread(thread, NULL); printf("Main thread error string: %s\n", SDL_GetError()); SDL_Quit(); return (0); }