Remove CBitmapSurface.
[SDL.s60v3.git] / test / testerror.c
blob9211dfcec559bc058c8dc6f2445e0a35776094a6
2 /* Simple test of the SDL threading code and error handling */
4 #include <stdio.h>
5 #include <stdlib.h>
6 #include <signal.h>
8 #include "SDL.h"
9 #include "SDL_thread.h"
11 static int alive = 0;
13 /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */
14 static void quit(int rc)
16 SDL_Quit();
17 exit(rc);
20 int SDLCALL ThreadFunc(void *data)
22 /* Set the child thread error string */
23 SDL_SetError("Thread %s (%d) had a problem: %s",
24 (char *)data, SDL_ThreadID(), "nevermind");
25 while ( alive ) {
26 printf("Thread '%s' is alive!\n", (char *)data);
27 SDL_Delay(1*1000);
29 printf("Child thread error string: %s\n", SDL_GetError());
30 return(0);
33 int main(int argc, char *argv[])
35 SDL_Thread *thread;
37 /* Load the SDL library */
38 if ( SDL_Init(0) < 0 ) {
39 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
40 return(1);
43 /* Set the error value for the main thread */
44 SDL_SetError("No worries");
46 alive = 1;
47 thread = SDL_CreateThread(ThreadFunc, "#1");
48 if ( thread == NULL ) {
49 fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError());
50 quit(1);
52 SDL_Delay(5*1000);
53 printf("Waiting for thread #1\n");
54 alive = 0;
55 SDL_WaitThread(thread, NULL);
57 printf("Main thread error string: %s\n", SDL_GetError());
59 SDL_Quit();
60 return(0);