view test/testerror.c @ 1019:e3b3130f3af8

Date: Fri, 31 Dec 2004 04:14:09 +0900 From: Hayashi Naoyuki Subject: SDL patch for Tru64 UNIX 4.0X SDL-1.2.8 support only Tru64 5.X. This patch is for Tru64 UNIX 4.X.(tested on Tru64 UNIX 4.0G and 5.1B) SDL-1.2.8/configure.in: ld doesn't accept -pthread option. cc -pthread has same effect as -D_REENTRANT when compiling, and has same effect as -lpthread -lexc when linking. SDL-1.2.8/include/begin_code.h: Old Compaq C Compiler accept not inline but __inline. SDL-1.2.8/src/audio/SDL_mixer_MMX.c: SDL-1.2.8/src/audio/SDL_mixer_MMX.h: Old Compaq C Compiler doesn't accept //. SDL-1.2.8/src/cdrom/osf/SDL_syscdrom.c: When becoming Tru64 v5.0 from Tru64 v4.0, the arrangement of the cd-rom device was changed.
author Sam Lantinga <slouken@libsdl.org>
date Sun, 02 Jan 2005 05:05:21 +0000
parents 74212992fb08
children be9c9c8f6d53
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;

int ThreadFunc(void *data)
{
	/* Set the child thread error string */
	SDL_SetError("Thread %s (%d) 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());
		exit(1);
	}
	atexit(SDL_Quit);

	/* 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());
		exit(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());

	return(0);
}