pthread_cancel Subroutine

Purpose

Requests the cancellation of a thread.

Library

Threads Library (libpthreads.a)

Syntax

#include <pthread.h>

int pthread_cancel (thread)
pthread_t thread;

Description

The pthread_cancel subroutine requests the cancellation of the thread thread. The action depends on the cancelability of the target thread:

  • If its cancelability is disabled, the cancellation request is set pending.
  • If its cancelability is deferred, the cancellation request is set pending till the thread reaches a cancellation point.
  • If its cancelability is asynchronous, the cancellation request is acted upon immediately; in some cases, it may result in unexpected behavior.

The cancellation of a thread terminates it safely, using the same termination procedure as the pthread_exit subroutine.

Note: The pthread.h header file must be the first included file of each source file using the threads library. Otherwise, the -D_THREAD_SAFE compilation flag should be used, or the cc_r compiler used. In this case, the flag is automatically set.

Parameters

Item Description
thread Specifies the thread to be canceled.

Return Values

If successful, the pthread_cancel function returns zero. Otherwise, an error number is returned to indicate the error.

Error Codes

The ptread_cancel function may fail if:

Item Description
ESRCH No thread could be found corresponding to that specified by the given thread ID.

The pthread_cancel function will not return an error code of EINTR.