CMake/Modules/CheckForPthreads.c

39 lines
704 B
C
Raw Normal View History

2003-08-02 00:48:41 +04:00
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
void* runner(void*);
int res = 0;
#ifdef __CLASSIC_C__
int main(){
int ac;
char*av[];
#else
int main(int ac, char*av[]){
#endif
2003-08-02 00:48:41 +04:00
pthread_t tid[2];
pthread_create(&tid[0], 0, runner, (void*)1);
pthread_create(&tid[1], 0, runner, (void*)2);
2006-12-05 01:26:41 +03:00
#if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.)
2003-08-02 00:48:41 +04:00
usleep(1); // for strange behavior on single-processor sun
2006-12-05 01:26:41 +03:00
#endif
2003-08-02 00:48:41 +04:00
pthread_join(tid[0], 0);
pthread_join(tid[1], 0);
if(ac > 1000){return *av[0];}
2003-08-02 00:48:41 +04:00
return res;
}
void* runner(void* args)
{
int cc;
for ( cc = 0; cc < 10; cc ++ )
{
printf("%d CC: %d\n", (int)args, cc);
}
res ++;
return 0;
}