---
name: "pthread_cancel"
section: "3"
platform: "macos"
package: "libpthread"
version: "539.100.4"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/pthread_cancel"
---

# pthread\_cancel(3)

cancel execution of a thread

## NAME

**pthread\_cancel** – cancel execution of a thread

## SYNOPSIS

**#include \<pthread.h\>**

*int*\

**pthread\_cancel**(*pthread\_t thread*);

## DESCRIPTION

The **pthread\_cancel**() function requests that *thread* be canceled. The target thread's cancelability state and type determines when the cancellation takes effect. When the cancellation is acted on, the cancellation cleanup handlers for *thread* are called. When the last cancellation cleanup handler returns, the thread-specific data destructor functions will be called for *thread*. When the last destructor function returns, *thread* will be terminated.

The cancellation processing in the target thread runs asynchronously with respect to the calling thread returning from **pthread\_cancel**().

A status of PTHREAD\_CANCELED is made available to any threads joining with the target. The symbolic constant PTHREAD\_CANCELED expands to a constant expression of type *(void \*)*, whose value matches no pointer to an object in memory nor the value NULL.

## RETURN VALUES

If successful, the **pthread\_cancel**() functions will return zero. Otherwise an error number will be returned to indicate the error.

## ERRORS

The **pthread\_cancel**() function will fail if:

- \[ESRCH\]

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

## SEE ALSO

[pthread\_cleanup\_pop(3)](/pthread_cleanup_pop/3.md), [pthread\_cleanup\_push(3)](/pthread_cleanup_push/3.md), [pthread\_exit(3)](/pthread_exit/3.md), [pthread\_join(3)](/pthread_join/3.md), [pthread\_setcancelstate(3)](/pthread_setcancelstate/3.md), [pthread\_setcanceltype(3)](/pthread_setcanceltype/3.md), [pthread\_testcancel(3)](/pthread_testcancel/3.md)

## STANDARDS

The **pthread\_cancel**() function conforms to ISO/IEC 9945-1:1996 (“POSIX.1”).

## AUTHORS

This manual page was written by David Leonard ⟨*d@openbsd.org*⟩ for the OpenBSD implementation of **pthread\_cancel**().
