Mercurial > sdl-ios-xcode
view test/testerror.c @ 4467:0baef09fe702
author Eric Wing <ewing . public |-at-| gmail . com>
Wed May 12 12:49:28 2010 -0700 (5 days ago)
Added the automated test plist file and modified .hgignore to be less aggressive.
Discovered that the new plist file for the automated test was not checked in because the .hgignore file was too aggressive. I changed the .hgignore to not ignore the Xcode directory and instead added a longer list of things to ignore.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 17 May 2010 23:13:33 -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); }