CheckForPthreads.c 706 B

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