cae7291

example usage of pthread_setcanceltype

Sep 18th, 2018
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.64 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <pthread.h>
  4.  
  5. int opt_a;
  6.  
  7. void *
  8. worker(void *ptr)
  9. {
  10.  
  11. if (opt_a)
  12. pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,NULL);
  13.  
  14. while (1);
  15.  
  16. return (void *) 0;
  17. }
  18.  
  19. // main -- main program
  20. int
  21. main(int argc,char **argv)
  22. {
  23. char *cp;
  24. pthread_t thr;
  25. void *rtn;
  26.  
  27. --argc;
  28. ++argv;
  29.  
  30. for (; argc > 0; --argc, ++argv) {
  31. cp = *argv;
  32. if (*cp != '-')
  33. break;
  34.  
  35. switch (cp[1]) {
  36. case 'a':
  37. opt_a = ! opt_a;
  38. break;
  39.  
  40. default:
  41. break;
  42. }
  43. }
  44.  
  45. pthread_create(&thr,NULL,worker,NULL);
  46. sleep(2);
  47. pthread_cancel(thr);
  48. pthread_join(thr,&rtn);
  49.  
  50. return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment