Seth Woolley's Man Viewer

set_tid_address(2) - set_tid_address - set pointer to thread ID - man 2 set_tid_address

([section] manual, -k keyword, -K [section] search, -f whatis)
man plain no title

SET_TID_ADDRESS(2)         Linux Programmer's Manual        SET_TID_ADDRESS(2)



NAME
       set_tid_address - set(7,n,1 builtins) pointer to thread ID

SYNOPSIS
       #include <linux/unistd.h>

       long set_tid_address(int *tidptr);

DESCRIPTION
       The  kernel  keeps for each process two values called set_child_tid and
       clear_child_tid that are NULL by default.


   set_child_tid
       If a process is started  using  clone(2)  with  the  CLONE_CHILD_SETTID
       flag, set_child_tid is set(7,n,1 builtins) to child_tidptr, the fifth parameter of that
       system call.

       When set_child_tid is set(7,n,1 builtins), the very first thing the new process does is
       writing its PID at this address.


   clear_child_tid
       If  a  process  is started using clone(2) with the CLONE_CHILD_CLEARTID
       flag, clear_child_tid is set(7,n,1 builtins) to child_tidptr, the  fifth  parameter  of
       that system call.

       The  system call set_tid_address sets the clear_child_tid value for the
       calling process to tidptr.

       When clear_child_tid is set(7,n,1 builtins), and the process exits, and the process was
       sharing  memory  with  other processes or threads, then 0 is written at
       this address, and a futex(2,4)(child_tidptr, FUTEX_WAKE, 1, NULL, NULL,  0);
       call  is  done. (That is, wake a single process waiting on this futex.)
       Errors are ignored.

RETURN VALUE
       set_tid_address returns the PID of the current process.

HISTORY
       This call is present since Linux 2.5.48.  Details  as  given  here  are
       valid since Linux 2.5.49.

SEE ALSO
       clone(2), futex(2,4)(2)



Linux 2.6                         2004-09-10                SET_TID_ADDRESS(2)

References for this manual (incoming links)