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::ShareLock

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

#include <ShareLock.h>

Diagramma di interrelazione per utils::ShareLock:

Collaboration graph
[legenda]
Lista di tutti i membri.

Membri pubblici

 ShareLock ()
 Crea un oggetto di tipo Lock, allocando le risorse necessarie al suo utilizzo. Continua...

 ~ShareLock ()
 Distrugge un oggetto di tipo Lock, liberando le risorse utilizzate. Continua...

void lock (const string &resource, bool exclusive=false)
 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 o condiviso 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 o condiviso ad un singolo thread di esecuzione. La politica di assegnazione delle risorse è la seguente:

Definizione alla linea 49 del file ShareLock.h.


Documentazione dei costruttori e dei distruttori

utils::ShareLock::ShareLock ( )
 

Crea un oggetto di tipo Lock, allocando le risorse necessarie al suo utilizzo.

Definizione alla linea 27 del file ShareLock.cc.

00027                           {
00028     pthread_mutex_init(&mut, NULL);
00029     pthread_cond_init(&cond, NULL);
00030 }

utils::ShareLock::~ShareLock ( )
 

Distrugge un oggetto di tipo Lock, liberando le risorse utilizzate.

Definizione alla linea 32 del file ShareLock.cc.

00032                            {
00033     pthread_mutex_destroy(&mut);
00034     pthread_cond_destroy(&cond);
00035 }


Documentazione delle funzioni membro

void utils::ShareLock::lock ( const string & resource,
bool exclusive = false )
 

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.
exclusive   true qualora si desideri un'accesso Exclusive alla risorsa.

Definizione alla linea 55 del file ShareLock.cc.

00055                                                                {
00056     pthread_mutex_lock(&mut);
00057     while(isbusy(resource, ex))
00058         pthread_cond_wait(&cond, &mut);
00059     alloc(resource, ex);
00060     pthread_mutex_unlock(&mut);
00061 }

void utils::ShareLock::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 63 del file ShareLock.cc.

00063                                                   {
00064     pthread_mutex_lock(&mut);
00065     free(resource);
00066     pthread_cond_broadcast(&cond);
00067     pthread_mutex_unlock(&mut);
00068 }


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