pthread_mutex_consistent(3) Library Functions Manual pthread_mutex_consistent(3)

pthread_mutex_consistent - face un „mutex” robust să fie consistent

Biblioteca de fire de execuție POSIX (libpthread, -lpthread)

#include <pthread.h>
int pthread_mutex_consistent(pthread_mutex_t *mutex);
Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

pthread_mutex_consistent():

    _POSIX_C_SOURCE >= 200809L

Această funcție face ca un mutex robust să devină consecvent dacă se află într-o stare inconsecventă. Un mutex poate fi lăsat într-o stare inconsistentă dacă proprietarul său încetează în timp ce deține mutexul, caz în care următorul proprietar care achiziționează mutexul va reuși și va fi notificat printr-o valoare de întoarcere EOWNERDEAD de la un apel la pthread_mutex_lock().

În caz de succes, pthread_mutex_consistent() returnează 0. În caz contrar, returnează un număr de eroare pozitiv pentru a indica eroarea.

Mutexul fie nu este robust, fie nu se află într-o stare inconsistentă.

POSIX.1-2008.

glibc 2.12. POSIX.1-2008.

Înainte de adăugarea lui pthread_mutex_consistent() la POSIX, glibc definea următoarea funcție non-standard echivalentă în cazul în care era definită _GNU_SOURCE:

[[depreciat]]
int pthread_mutex_consistent_np(const pthread_mutex_t *mutex);

Acest API specific GNU, care a apărut pentru prima dată în glibc 2.4, este în prezent învechit și nu ar trebui să fie utilizat în programe noi; începând cu glibc 2.34 a fost marcat ca fiind depreciat.

pthread_mutex_consistent() informează pur și simplu implementarea că starea (datele partajate) protejată de mutex a fost readusă la o stare consistentă și că operațiile normale pot fi efectuate acum cu mutexul. Este responsabilitatea aplicației să se asigure că datele partajate au fost readuse într-o stare coerentă înainte de a apela pthread_mutex_consistent().

A se vedea pthread_mutexattr_setrobust(3).

pthread_mutex_lock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_init(3), pthread_mutexattr_setrobust(3), pthreads(7)

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.

31 octombrie 2023 Pagini de manual de Linux 6.06