#include <Lock.h>
Diagramma di interrelazione per utils::Lock:
Membri pubblici | |
Lock () | |
Crea un oggetto di tipo Lock, allocando le risorse necessarie al suo utilizzo. Continua... | |
~Lock () | |
Distrugge un oggetto di tipo Lock, liberando le risorse utilizzate. Continua... | |
void | lock (const string &resource) |
Eseguito prima dell'utilizzo della risorsa effettua le seguenti operazioni: Verifica la disponibilità della risorsa, rimanendo in attesa sino a quando essa sia disponibile. Continua... | |
void | unlock (const string &resource) |
Eseguito al termine dell'utilizzo di una risorsa effettua le seguenti operazioni: Libera la risorsa. Continua... |
Dato un insieme di risorse critiche identificate ogniuna con una string, consente di garantire l'accesso ad ogniuna di esse in modo esclusivo ad un singolo thread di esecuzione.
Definizione alla linea 43 del file Lock.h.
|
Crea un oggetto di tipo Lock, allocando le risorse necessarie al suo utilizzo.
Definizione alla linea 27 del file Lock.cc. 00027 { 00028 pthread_mutex_init(&mut, NULL); 00029 pthread_cond_init(&cond, NULL); 00030 } |
|
Distrugge un oggetto di tipo Lock, liberando le risorse utilizzate.
Definizione alla linea 32 del file Lock.cc. 00032 { 00033 pthread_mutex_destroy(&mut); 00034 pthread_cond_destroy(&cond); 00035 } |
|
Eseguito prima dell'utilizzo della risorsa effettua le seguenti operazioni: Verifica la disponibilità della risorsa, rimanendo in attesa sino a quando essa sia disponibile.
Definizione alla linea 41 del file Lock.cc. 00041 { 00042 pthread_mutex_lock(&mut); 00043 while(!isfree(resource)) 00044 pthread_cond_wait(&cond, &mut); 00045 alloc(resource); 00046 pthread_mutex_unlock(&mut); 00047 } |
|
Eseguito al termine dell'utilizzo di una risorsa effettua le seguenti operazioni: Libera la risorsa.
Definizione alla linea 49 del file Lock.cc. 00049 { 00050 pthread_mutex_lock(&mut); 00051 free(resource); 00052 pthread_cond_broadcast(&cond); 00053 pthread_mutex_unlock(&mut); 00054 } |