Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       get_robust_list, set_robust_list - obține/stabilește lista de futex-uri robuste

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <linux/futex.h>   /* Definiția lui struct robust_list_head */
       #include <sys/syscall.h>   /* Definirea constantelor SYS_* */
       #include <unistd.h>

       long syscall(SYS_get_robust_list, int pid,
                    struct robust_list_head **head_ptr, size_t *len_ptr);
       long syscall(SYS_set_robust_list,
                    struct robust_list_head *head, size_t len);

       Notă: Nu există nicio funcție învăluitoare (wrapper) glibc pentru aceste apeluri de sistem astfel că este
       necesară utilizarea a syscall(2).

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
       set_robust_list(). Adresa listei de futex-uri robuste a unui fir de execuție poate fi  obținută  folosind
       get_robust_list().

       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 execve(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  FUTEX_OWNER_DIED  este  activat  în  cuvântul  futex,  iar  nucleul efectuează o operație futex(2)
       FUTEX_WAKE pe unul dintre firele care așteaptă futex-ul.

       Apelul de sistem get_robust_list() returnează antetul listei futex robustă a firului al cărui ID  de  fir
       este  specificat  în  pid.  Dacă  pid  este 0, se returnează antetul listei pentru firul apelant. Antetul
       listei este stocat în locația indicată de head_ptr. Dimensiunea obiectului  indicat  de  **head_ptr  este
       stocată în len_ptr.

       Permisiunea  de  a  utiliza  get_robust_list()  este  guvernată de o verificare a modului de acces ptrace
       PTRACE_MODE_READ_REALCREDS; a se vedea ptrace(2).

       Apelul de sistem set_robust_list() solicită nucleului să înregistreze antetul listei de futex-uri robuste
       deținute de firul apelant. Argumentul head este antetul listei care trebuie înregistrat.  Argumentul  len
       trebuie să fie sizeof(*head).

VALOAREA RETURNATĂ

       Apelurile  de  sistem set_robust_list() și get_robust_list() returnează zero atunci când operațiunea este
       reușită, iar în caz contrar un cod de eroare.

ERORI-IEȘIRE

       Apelul de sistem set_robust_list() poate eșua cu următoarea eroare:

       EINVAL len nu este egal cu sizeof(struct robust_list_head).

       Apelul de sistem get_robust_list() poate eșua cu următoarele erori:

       EFAULT Antetul listei futex robuste nu poate fi stocat în locația head.

       EPERM  Procesul care face apelul nu are permisiunea de a vedea lista robustă futex  a  firului  cu  ID-ul
              firului pid și nu are capacitatea CAP_SYS_PTRACE.

       ESRCH  Nu a putut fi găsit niciun fir cu ID-ul firului pid.

VERSIUNI

       Aceste apeluri de sistem au fost adăugate în Linux 2.6.17.

NOTE

       Aceste apeluri de sistem nu sunt necesare pentru aplicațiile normale.

       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.

       Î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 execve(2).

       ID-urile de fire menționate în textul principal sunt ID-uri de fire kernel de tipul  celor  returnate  de
       clone(2) și gettid(2).

CONSULTAȚI ȘI

       futex(2), pthread_mutexattr_setrobust(3)

       Documentation/robust-futexes.txt  și  Documentation/robust-futex-ABI.txt  în  arborele sursă al nucleului
       Linux

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                 get_robust_list(2)