Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <unistd.h>
- #include <pthread.h>
- int opt_a;
- void *
- worker(void *ptr)
- {
- if (opt_a)
- pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,NULL);
- while (1);
- return (void *) 0;
- }
- // main -- main program
- int
- main(int argc,char **argv)
- {
- char *cp;
- pthread_t thr;
- void *rtn;
- --argc;
- ++argv;
- for (; argc > 0; --argc, ++argv) {
- cp = *argv;
- if (*cp != '-')
- break;
- switch (cp[1]) {
- case 'a':
- opt_a = ! opt_a;
- break;
- default:
- break;
- }
- }
- pthread_create(&thr,NULL,worker,NULL);
- sleep(2);
- pthread_cancel(thr);
- pthread_join(thr,&rtn);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment