SET_TID_ADDRESS
Section: Linux Programmer's Manual (2)
Updated: 2004-09-10
Index
JM Home Page
roff page
名前
set_tid_address - スレッド ID へのポインタを設定する
書式
#include <linux/unistd.h>
long set_tid_address(int *tidptr);
説明
カーネルは各プロセスについて
set_child_tid
と
clear_child_tid
という 2 つの値を保持する。
これらはデフォルトでは NULL である。
set_child_tid
プロセスが
CLONE_CHILD_SETTID
フラグを指定した
clone(2)
によって開始された場合、
set_child_tid
は
child_tidptr
に設定される。
これは
clone(2)
のシステムコールの 5 番目の引き数である。
set_child_tid
が設定された場合、一番最初に新しいプロセスが行うことは、
このアドレスに自身の PID を書き込むことである。
clear_child_tid
プロセスが
CLONE_CHILD_CLEARTID
フラグを指定した
clone(2)
によって開始された場合、
clear_child_tid
は
child_tidptr
に設定される。
これは
clone(2)
のシステムコールの 5 番目の引き数である。
システムコール
set_tid_address()
は呼び出し元プロセスの
clear_child_tid
の値を
tidptr
に設定する。
clear_child_tid
が設定されているときにプロセスが終了すると、
そのプロセスは他のプロセスまたはスレッドとメモリを共有しているので、
このアドレスに 0 が書き込まれ、
futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0);
の呼び出しが実行される
(つまり、この futex で待っている 1 つのプロセスを起こす (wake))。
エラーは無視される。
返り値
set_tid_address()
は常に現在のプロセスの PID を返す。
エラー
set_tid_address()
は常に成功する。
バージョン
この呼び出しは Linux 2.5.48 以降で存在する。
ここで書かれた詳細は Linux 2.5.49 以降で有効である。
準拠
このシステムコールは Linux 独自である。
関連項目
clone(2),
futex(2)
Index
- 名前
-
- 書式
-
- 説明
-
- set_child_tid
-
- clear_child_tid
-
- 返り値
-
- エラー
-
- バージョン
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:32:01 GMT, November 19, 2007