test/testerror.c

/* [<][>]
[^][v][top][bottom][index][help] */

FUNCTIONS

This source file includes following functions.
  1. ThreadFunc
  2. main

   1 
   2 /* Simple test of the SDL threading code and error handling */
   3 
   4 #include <stdio.h>
   5 #include <stdlib.h>
   6 #include <signal.h>
   7 
   8 #include "SDL.h"
   9 #include "SDL_thread.h"
  10 
  11 static int alive = 0;
  12 
  13 int ThreadFunc(void *data)
     /* [<][>][^][v][top][bottom][index][help] */
  14 {
  15         /* Set the child thread error string */
  16         SDL_SetError("Thread %s (%d) had a problem: %s",
  17                         (char *)data, SDL_ThreadID(), "nevermind");
  18         while ( alive ) {
  19                 printf("Thread '%s' is alive!\n", (char *)data);
  20                 SDL_Delay(1*1000);
  21         }
  22         printf("Child thread error string: %s\n", SDL_GetError());
  23         return(0);
  24 }
  25 
  26 int main(int argc, char *argv[])
     /* [<][>][^][v][top][bottom][index][help] */
  27 {
  28         SDL_Thread *thread;
  29 
  30         /* Load the SDL library */
  31         if ( SDL_Init(0) < 0 ) {
  32                 fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError());
  33                 exit(1);
  34         }
  35         atexit(SDL_Quit);
  36 
  37         /* Set the error value for the main thread */
  38         SDL_SetError("No worries");
  39 
  40         alive = 1;
  41         thread = SDL_CreateThread(ThreadFunc, "#1");
  42         if ( thread == NULL ) {
  43                 fprintf(stderr, "Couldn't create thread: %s\n", SDL_GetError());
  44                 exit(1);
  45         }
  46         SDL_Delay(5*1000);
  47         printf("Waiting for thread #1\n");
  48         alive = 0;
  49         SDL_WaitThread(thread, NULL);
  50 
  51         printf("Main thread error string: %s\n", SDL_GetError());
  52 
  53         return(0);
  54 }

/* [<][>][^][v][top][bottom][index][help] */