CheckForPthreads.c 701 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #include <stdio.h>
  2. #include <pthread.h>
  3. #include <unistd.h>
  4. void* runner(void*);
  5. int res = 0;
  6. #ifdef __CLASSIC_C__
  7. int main(){
  8. int ac;
  9. char*av[];
  10. #else
  11. int main(int ac, char*av[]){
  12. #endif
  13. pthread_t tid[2];
  14. pthread_create(&tid[0], 0, runner, (void*)1);
  15. pthread_create(&tid[1], 0, runner, (void*)2);
  16. #if defined(__BEOS__) && !defined(__ZETA__) // (no usleep on BeOS 5.)
  17. usleep(1); // for strange behavior on single-processor sun
  18. #endif
  19. pthread_join(tid[0], 0);
  20. pthread_join(tid[1], 0);
  21. if(ac > 1000){return *av[0];}
  22. return res;
  23. }
  24. void* runner(void* args)
  25. {
  26. int cc;
  27. for ( cc = 0; cc < 10; cc ++ )
  28. {
  29. printf("%d CC: %d\n", (int)args, cc);
  30. }
  31. res ++;
  32. return 0;
  33. }