.\" -*- 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 "2 мая 2024 г." "Linux man\-pages 6.8" .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 Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .