Mercurial > sdl-ios-xcode
view test/testsem.c @ 1169:4b3e2294782d
Date: Sun, 06 Nov 2005 18:23:03 +0900
From: Hayashi Naoyuki <titan@culzean.org>
To: "A list for developers using the SDL library. \(includes SDL-announce\)" <sdl@libsdl.org>
Subject: Re: [SDL] Dynamic X11...
1. Compilation produce the following error on Tru64 UNIX.
cc: Severe: SDL_x11dyn.h, line 31: Cannot find file
<X11/extensions/extutil.h> specified in #include directive. (noinclfilef)
#include <X11/extensions/extutil.h>
Because Tru64 UNIX doesn't have extutil.h, this error is caused.
2. Compilation with --enable-x11-shared=no produce the following error.
cc: Error: SDL_x11sym.h, line 115: In this statement,
"Xutf8TextListToTextProperty" is not declared. (undeclared)
SDL_X11_SYM(int,Xutf8TextListToTextProperty,(Display*,char**,int,XICCEncodingStyle,XTextProperty*))
Though it doesn't have Xutf8TextListToTextProperty,
"pXutf8TextListToTextProperty = Xutf8TextListToTextProperty;"
in SDL_x11dyn.c,117-119
#define SDL_X11_SYM(r,fn,arg) p##fn = fn;
#include "SDL_x11sym.h"
#undef SDL_X11_SYM
-- Hayashi Naoyuki Key fingerprint = 60A0 D5D3 F58B 3633 2E52 0147 D17F 5578 3FDF F5B6
author | Ryan C. Gordon <icculus@icculus.org> |
---|---|
date | Sun, 06 Nov 2005 17:05:12 +0000 |
parents | be9c9c8f6d53 |
children | 4d3bb026cd16 |
line wrap: on
line source
/* Simple test of the SDL semaphore code */ #include <stdio.h> #include <stdlib.h> #include <signal.h> #include "SDL.h" #include "SDL_thread.h" #define NUM_THREADS 10 static SDL_sem *sem; int alive = 1; /* Call this instead of exit(), so we can clean up SDL: atexit() is evil. */ static void quit(int rc) { SDL_Quit(); exit(rc); } int ThreadFunc(void *data) { while ( alive ) { SDL_SemWait(sem); fprintf(stderr, "Thread number %d has got the semaphore (value = %d)!\n", (int)data, SDL_SemValue(sem)); SDL_Delay(200); SDL_SemPost(sem); fprintf(stderr, "Thread number %d has released the semaphore (value = %d)!\n", (int)data, SDL_SemValue(sem)); SDL_Delay(1); /* For the scheduler */ } printf("Thread number %d exiting.\n", (int)data); return 0; } static void killed(int sig) { alive = 0; } int main(int argc, char **argv) { SDL_Thread *threads[NUM_THREADS]; int i, init_sem; if(argc < 2) { fprintf(stderr,"Usage: %s init_value\n", argv[0]); return(1); } /* Load the SDL library */ if ( SDL_Init(0) < 0 ) { fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); return(1); } signal(SIGTERM, killed); signal(SIGINT, killed); init_sem = atoi(argv[1]); sem = SDL_CreateSemaphore(init_sem); printf("Running %d threads, semaphore value = %d\n", NUM_THREADS, init_sem); /* Create all the threads */ for( i = 0; i < NUM_THREADS; ++i ) { threads[i] = SDL_CreateThread(ThreadFunc, (void*)i); } /* Wait 10 seconds */ SDL_Delay(10 * 1000); /* Wait for all threads to finish */ printf("Waiting for threads to finish\n"); alive = 0; for( i = 0; i < NUM_THREADS; ++i ) { SDL_WaitThread(threads[i], NULL); } printf("Finished waiting for threads\n"); SDL_DestroySemaphore(sem); SDL_Quit(); return(0); }