Pagina Principale   Moduli   Lista dei namespaces   Gerarchia delle classi   Lista in ordine alfabetico   Lista dei composti   Lista dei files   Membri dei namespaces   Membri dei composti   Membri dei files   Esempi  

Riferimenti per la classe utils::Lock

Consente l'accesso esclusivo ad una risorsa ad un gruppo di thread. Continua...

#include <Lock.h>

Diagramma di interrelazione per utils::Lock:

Collaboration graph
[legenda]
Lista di tutti i membri.

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...


Descrizione Dettagliata

Consente l'accesso esclusivo ad una risorsa ad un gruppo di thread.

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.


Documentazione dei costruttori e dei distruttori

utils::Lock::Lock ( )
 

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 }

utils::Lock::~Lock ( )
 

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 }


Documentazione delle funzioni membro

void utils::Lock::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.

  • * - Occupa la risorsa.
Parametri:
resource   string che identifica la risorsa da occupare.

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 }

void utils::Lock::unlock ( const string & resource )
 

Eseguito al termine dell'utilizzo di una risorsa effettua le seguenti operazioni: Libera la risorsa.

  • * - Risveglia un thread in attesa di occupare la risorsa (con Lock::lock(string)).
    Parametri:
    resource   string che identifica la risorsa da liberare.

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 }


La documentazione per questa classe è stata generata a partire dai seguenti files:
Generato il Thu Feb 15 13:25:06 2001 per A Simple Distributed Object Repository with CORBA & C++. da doxygen1.2.3 scritto da Dimitri van Heesch, © 1997-2000