.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2006 Red Hat, Inc. All Rights Reserved. .\" Written by Ivana Varekova .\" and Copyright (c) 2017, Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" FIXME Something could be added to this page (or exit(2)) .\" about exit_robust_list processing .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH get_robust_list 2 "30 octombrie 2022" "Pagini de manual de Linux 6.05.01" .SH NUME get_robust_list, set_robust_list \- obține/stabilește lista de futex\-uri robuste .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP /* Definiția lui \fBstruct robust_list_head\fP */ \fB#include \fP /* Definirea constantelor \fBSYS_*\fP */ \fB#include \fP .PP \fBlong syscall(SYS_get_robust_list, int \fP\fIpid\fP\fB,\fP \fB struct robust_list_head **\fP\fIhead_ptr\fP\fB, size_t *\fP\fIlen_ptr\fP\fB);\fP \fBlong syscall(SYS_set_robust_list,\fP \fB struct robust_list_head *\fP\fIhead\fP\fB, size_t \fP\fIlen\fP\fB);\fP .fi .PP \fINotă\fP: Nu există nicio funcție învăluitoare (wrapper) glibc pentru aceste apeluri de sistem astfel că este necesară utilizarea a \fBsyscall\fP(2). .SH DESCRIERE Aceste apeluri de sistem se ocupă de listele futex robuste pentru fiecare fir. Aceste liste sunt gestionate în spațiul utilizatorului: nucleul știe doar despre locația antetului listei. Un fir de execuție poate informa nucleul cu privire la locația listei sale de futex\-uri robuste folosind \fBset_robust_list\fP(). Adresa listei de futex\-uri robuste a unui fir de execuție poate fi obținută folosind \fBget_robust_list\fP(). .PP Scopul listei robuste de futex este de a se asigura că, în cazul în care un fir nu reușește din greșeală să deblocheze un futex înainte de a se termina sau de a apela \fBexecve\fP(2), un alt fir care așteaptă acel futex este notificat că fostul proprietar al futexului a murit. Această notificare constă în două părți: bitul \fBFUTEX_OWNER_DIED\fP este activat în cuvântul futex, iar nucleul efectuează o operație \fBfutex\fP(2) \fBFUTEX_WAKE\fP pe unul dintre firele care așteaptă futex\-ul. .PP Apelul de sistem \fBget_robust_list\fP() returnează antetul listei futex robustă a firului al cărui ID de fir este specificat în \fIpid\fP. Dacă \fIpid\fP este 0, se returnează antetul listei pentru firul apelant. Antetul listei este stocat în locația indicată de \fIhead_ptr\fP. Dimensiunea obiectului indicat de \fI**head_ptr\fP este stocată în \fIlen_ptr\fP. .PP Permisiunea de a utiliza \fBget_robust_list\fP() este guvernată de o verificare a modului de acces ptrace \fBPTRACE_MODE_READ_REALCREDS\fP; a se vedea \fBptrace\fP(2). .PP Apelul de sistem \fBset_robust_list\fP() solicită nucleului să înregistreze antetul listei de futex\-uri robuste deținute de firul apelant. Argumentul \fIhead\fP este antetul listei care trebuie înregistrat. Argumentul \fIlen\fP trebuie să fie \fIsizeof(*head)\fP. .SH "VALOAREA RETURNATĂ" Apelurile de sistem \fBset_robust_list\fP() și \fBget_robust_list\fP() returnează zero atunci când operațiunea este reușită, iar în caz contrar un cod de eroare. .SH ERORI\-IEȘIRE Apelul de sistem \fBset_robust_list\fP() poate eșua cu următoarea eroare: .TP \fBEINVAL\fP \fIlen\fP nu este egal cu \fIsizeof(struct\ robust_list_head)\fP. .PP Apelul de sistem \fBget_robust_list\fP() poate eșua cu următoarele erori: .TP \fBEFAULT\fP Antetul listei futex robuste nu poate fi stocat în locația \fIhead\fP. .TP \fBEPERM\fP Procesul care face apelul nu are permisiunea de a vedea lista robustă futex a firului cu ID\-ul firului \fIpid\fP și nu are capacitatea \fBCAP_SYS_PTRACE\fP. .TP \fBESRCH\fP Nu a putut fi găsit niciun fir cu ID\-ul firului \fIpid\fP. .SH VERSIUNI Aceste apeluri de sistem au fost adăugate în Linux 2.6.17. .SH NOTE Aceste apeluri de sistem nu sunt necesare pentru aplicațiile normale. .PP Un fir de execuție poate avea doar o singură listă de futex\-uri robuste; prin urmare, aplicațiile care doresc să utilizeze această funcționalitate ar trebui să folosească mutex\-urile robuste furnizate de glibc. .PP .\" commit 8141c7f3e7aee618312fa1c15109e1219de784a7 În implementarea inițială, un fir de execuție care aștepta un futex era notificat că proprietarul acestuia a murit numai dacă proprietarul se termina. Începând cu Linux 2.6.28, notificarea a fost extinsă pentru a include cazul în care proprietarul efectuează un \fBexecve\fP(2). .PP ID\-urile de fire menționate în textul principal sunt ID\-uri de fire \fIkernel\fP de tipul celor returnate de \fBclone\fP(2) și \fBgettid\fP(2). .SH "CONSULTAȚI ȘI" \fBfutex\fP(2), \fBpthread_mutexattr_setrobust\fP(3) .PP \fIDocumentation/robust\-futexes.txt\fP și \fIDocumentation/robust\-futex\-ABI.txt\fP în arborele sursă al nucleului Linux .\" http://lwn.net/Articles/172149/ .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .