table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
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
SINOPSIS¶
#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:
- EINVAL
- 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 |