cc –mt [ flag... ] file... –lpthread [ -lrt library... ] #include <pthread.h>int pthread_cancel(pthread_t target_thread);
The pthread_cancel() function requests that target_thread be canceled.
By default, cancellation is deferred until target_thread reaches a cancellation point. See cancellation(3THR).
Cancellation cleanup handlers for target_thread are called when the cancellation is acted on. Upon return of the last cancellation cleanup handler, the thread-specific data destructor functions are called for target_thread. target_thread is terminated when the last destructor function returns.
The cancellation processing in target_thread runs asynchronously with respect to the calling thread returning from pthread_cancel().
If successful, the pthread_cancel() function returns 0. Otherwise, an error number is returned to indicate the error.
The pthread_cancel() function may fail if:
No thread was found with an ID corresponding to that specified by the given thread ID, target_thread.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
cancellation(3THR), condition(3THR), pthread_cleanup_pop(3THR), pthread_cleanup_push(3THR), pthread_cond_wait(3THR), pthread_cond_timedwait(3THR), pthread_exit(3THR), pthread_join(3THR), pthread_setcancelstate(3THR), pthread_setcanceltype(3THR), pthread_testcancel(3THR), setjmp(3C), attributes(5)
See cancellation(3THR) for a discussion of cancellation concepts.