Scroll to navigation

PTHREAD_MUTEXATTR(3) Library Functions Manual PTHREAD_MUTEXATTR(3)

NUME

pthread_mutexattr_init, pthread_mutexattr_destroy, pthread_mutexattr_settype, pthread_mutexattr_gettype - atributele de creare a mutex-urilor

REZUMAT

#include <pthread.h>

int pthread_mutexattr_init(pthread_mutexattr_t *attr);

int pthread_mutexattr_destroy(pthread_mutexattr_t *attr);

int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind);

int pthread_mutexattr_gettype(const pthread_mutexattr_t *attr, int *kind);

DESCRIERE

Atributele mutex-ului pot fi specificate în momentul creării mutex-ului, trecând un obiect atribut mutex ca al doilea argument la pthread_mutex_init(3). Trecerea lui NULL este echivalentă cu pasarea unui obiect de atribut mutex cu toate atributele stabilite la valorile lor implicite.

pthread_mutexattr_init inițializează obiectul atribut mutex attr și îl completează cu valorile implicite pentru atribute.

pthread_mutexattr_destroy distruge un obiect atribut mutex, care nu trebuie reutilizat până când nu este reinitializat. pthread_mutexattr_destroy nu face nimic în implementarea LinuxThreads.

LinuxThreads suportă un singur atribut mutex: tipul de mutex, care este fie PTHREAD_MUTEX_FAST_NP pentru mutex-uri „rapide” (fast), PTHREAD_MUTEX_RECURSIVE_NP pentru mutex-uri „recursive” (recursive) sau PTHREAD_MUTEX_ERRORCHECK_NP pentru mutex-uri de „verificare a erorilor” (error checking). După cum indică sufixul NP, aceasta este o extensie neportabilă a standardului POSIX și nu ar trebui să fie utilizată în programe portabile.

Tipul mutex-ului determină ce se întâmplă dacă un fir încearcă să blocheze un mutex pe care îl deține deja cu pthread_mutex_lock(3). În cazul în care mutex-ul este de tipul „rapid”, pthread_mutex_lock(3) suspendă pur și simplu firul apelant pentru totdeauna. În cazul în care mutex-ul este de tipul „verificare a erorilor”, pthread_mutex_lock(3) returnează imediat cu codul de eroare EDEADLK. În cazul în care mutex-ul este de tipul „recursiv”, apelul către pthread_mutex_lock(3) se returnează imediat cu un cod de succes. Numărul de ori de câte ori firul care deține mutex-ul l-a blocat este înregistrat în mutex. Firul care deține mutex-ul trebuie să apeleze pthread_mutex_unlock(3) de același număr de ori înainte ca mutex-ul să revină în starea deblocată.

Tipul de mutex implicit este „rapid”, adică PTHREAD_MUTEX_FAST_NP.

pthread_mutexattr_settype stabilește atributul de tip mutex din attr la valoarea specificată de kind.

pthread_mutexattr_gettype recuperează valoarea curentă a atributului de tip mutex din attr și o stochează în locația indicată de kind.

VALOAREA RETURNATĂ

pthread_mutexattr_init, pthread_mutexattr_destroy și pthread_mutexattr_gettype returnează întotdeauna 0.

pthread_mutexattr_settype returnează 0 în caz de succes și un cod de eroare diferit de zero în caz de eroare.

ERORI-IEȘIRE

În caz de eroare, pthread_mutexattr_settype returnează următorul cod de eroare:

kind nu este nici PTHREAD_MUTEX_FAST_NP, nici PTHREAD_MUTEX_RECURSIVE_NP, nici PTHREAD_MUTEX_ERRORCHECK_NP

AUTOR

Xavier Leroy <Xavier.Leroy@inria.fr>

CONSULTAȚI ȘI

pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_unlock(3).

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.

LinuxThreads