.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2004 Andries Brouwer (aeb@cwi.nl) .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH set_tid_address 2 "31 октября 2023 г." "Linux man\-pages 6.06" .SH ИМЯ set_tid_address \- устанавливает указатель идентификатора нити .SH LIBRARY Standard C library (\fIlibc\fP, \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include \fP /* определения констант \fBSYS_*\fP */ \fB#include \fP .P \fBpid_t syscall(SYS_set_tid_address, int *\fP\fItidptr\fP\fB);\fP .fi .P \fINote\fP: glibc provides no wrapper for \fBset_tid_address\fP(), necessitating the use of \fBsyscall\fP(2). .SH ОПИСАНИЕ В ядре для каждой нити хранится два атрибута (адреса): \fIset_child_tid\fP и \fIclear_child_tid\fP. Их значение по умолчанию равно NULL. .TP \fIset_child_tid\fP Если нить запущена с помощью \fBclone\fP(2) с флагом \fBCLONE_CHILD_SETTID\fP, то значение \fIset_child_tid\fP устанавливается равным аргументу системного вызова \fIctid\fP. .IP Если \fIset_child_tid\fP присвоено значение, то самое первое действие, которое выполняется для новой нити, это запись ID нити по этому адресу. .TP \fIclear_child_tid\fP Если нить запущена с помощью \fBclone\fP(2) с флагом \fBCLONE_CHILD_CLEARTID\fP, то значение \fIclear_child_tid\fP устанавливается равным аргументу системного вызова \fIctid\fP. .P Системный вызов \fBset_tid_address\fP() устанавливает у вызывающей нити значение \fIclear_child_tid\fP равным \fItidptr\fP. .P Если нить, чьё значение \fIclear_child_tid\fP не равно NULL, завершается и если нить использовала общую память с другими нитями, то по адресу, указанному в \fIclear_child_tid\fP, записывается 0 и ядро выполняет следующую операцию: .P .in +4n .EX futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0); .EE .in .P Действие этой операции в том, что она пробуждает единственную нить, выполнявшую ожидание futex на расположение памяти. Ошибки операции пробуждения futex игнорируются. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Вызов \fBset_tid_address\fP() всегда возвращает ID вызывающей нити. .SH ОШИБКИ Вызов \fBset_tid_address\fP() всегда завершается без ошибок. .SH СТАНДАРТЫ Linux. .SH ИСТОРИЯ Linux 2.5.48. .P Details as given here are valid since Linux 2.5.49. .SH "СМ. ТАКЖЕ" \fBclone\fP(2), \fBfutex\fP(2), \fBgettid\fP(2) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .