summaryrefslogtreecommitdiffstats
path: root/man2/set_tid_address.2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:24 +0000
commit100d1b33f088fd38f69129afff7f9c2a1e084a57 (patch)
tree5bf6b0bb14f22ecf0a5e9439fdd4c4758402400c /man2/set_tid_address.2
parentReleasing progress-linux version 6.7-2~progress7.99u1. (diff)
downloadmanpages-100d1b33f088fd38f69129afff7f9c2a1e084a57.tar.xz
manpages-100d1b33f088fd38f69129afff7f9c2a1e084a57.zip
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man2/set_tid_address.2')
-rw-r--r--man2/set_tid_address.297
1 files changed, 0 insertions, 97 deletions
diff --git a/man2/set_tid_address.2 b/man2/set_tid_address.2
deleted file mode 100644
index d174105..0000000
--- a/man2/set_tid_address.2
+++ /dev/null
@@ -1,97 +0,0 @@
-.\" Copyright (C) 2004 Andries Brouwer (aeb@cwi.nl)
-.\"
-.\" SPDX-License-Identifier: Linux-man-pages-copyleft
-.\"
-.TH set_tid_address 2 2023-10-31 "Linux man-pages 6.7"
-.SH NAME
-set_tid_address \- set pointer to thread ID
-.SH LIBRARY
-Standard C library
-.RI ( libc ", " \-lc )
-.SH SYNOPSIS
-.nf
-.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
-.B #include <unistd.h>
-.P
-.BI "pid_t syscall(SYS_set_tid_address, int *" tidptr );
-.fi
-.P
-.IR Note :
-glibc provides no wrapper for
-.BR set_tid_address (),
-necessitating the use of
-.BR syscall (2).
-.SH DESCRIPTION
-For each thread, the kernel maintains two attributes (addresses) called
-.I set_child_tid
-and
-.IR clear_child_tid .
-These two attributes contain the value NULL by default.
-.TP
-.I set_child_tid
-If a thread is started using
-.BR clone (2)
-with the
-.B CLONE_CHILD_SETTID
-flag,
-.I set_child_tid
-is set to the value passed in the
-.I ctid
-argument of that system call.
-.IP
-When
-.I set_child_tid
-is set, the very first thing the new thread does
-is to write its thread ID at this address.
-.TP
-.I clear_child_tid
-If a thread is started using
-.BR clone (2)
-with the
-.B CLONE_CHILD_CLEARTID
-flag,
-.I clear_child_tid
-is set to the value passed in the
-.I ctid
-argument of that system call.
-.P
-The system call
-.BR set_tid_address ()
-sets the
-.I clear_child_tid
-value for the calling thread to
-.IR tidptr .
-.P
-When a thread whose
-.I clear_child_tid
-is not NULL terminates, then,
-if the thread is sharing memory with other threads,
-then 0 is written at the address specified in
-.I clear_child_tid
-and the kernel performs the following operation:
-.P
-.in +4n
-.EX
-futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);
-.EE
-.in
-.P
-The effect of this operation is to wake a single thread that
-is performing a futex wait on the memory location.
-Errors from the futex wake operation are ignored.
-.SH RETURN VALUE
-.BR set_tid_address ()
-always returns the caller's thread ID.
-.SH ERRORS
-.BR set_tid_address ()
-always succeeds.
-.SH STANDARDS
-Linux.
-.SH HISTORY
-Linux 2.5.48.
-.P
-Details as given here are valid since Linux 2.5.49.
-.SH SEE ALSO
-.BR clone (2),
-.BR futex (2),
-.BR gettid (2)