thr_exit(2)

thr_exit2

Terminate current thread

Usage

#include <sys/thr.h>

void

thr_exit(long *state);

Library

Standard C Library (libc, -lc)

Overview

This function is intended for implementing threading. Normal applications should call pthread_exit(3) instead.

The thr_exit() system call terminates the current kernel-scheduled thread.

If the state argument is not NULL, the location pointed to by the argument is updated with an arbitrary non-zero value, and an _umtx_op(2) UMTX_OP_WAKE operation is consequently performed on the location.

Attempts to terminate the last thread in the process are silently ignored. Use _exit(2) syscall to terminate the process.

Return values

The function does not return a value. A return from the function indicates that the calling thread was the last one in the process.

Releases

25 releases since FreeBSD 11.0-RELEASE; the text changed 12 times.

  1. 11.0
  2. 11.1
  3. 11.2
  4. 11.3
  5. 11.4
  6. 12.0
  7. 12.1
  8. 12.2
  9. 12.3
  10. 12.4
  11. 13.0–13.2
  12. 13.3–14.2
  13. 14.3–16.0

Standards

The thr_exit() system call is non-standard and is used by library “libthr” to implement IEEE Std 1003.1-2001 (“POSIX.1”) pthread(3) functionality.

History

The thr_exit() system call first appeared in FreeBSD 5.2.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.