ANNA Suite  2020b
Multipurpose development suite for Telco applications
Classes | Public Member Functions | List of all members
anna::Mutex Class Reference

#include <Mutex.hpp>

Inheritance diagram for anna::Mutex:
Inheritance graph
[legend]
Collaboration diagram for anna::Mutex:
Collaboration graph
[legend]

Classes

struct  Mode
 

Public Member Functions

 Mutex (const Mode::_v mode=Mode::Recursive)
 
virtual ~Mutex ()
 
virtual void lock () noexcept(false)
 
virtual void unlock ()
 
bool trylock () noexcept(false)
 
 operator const pthread_mutex_t * () const
 

Additional Inherited Members

- Protected Member Functions inherited from anna::Safe
 Safe ()
 

Detailed Description

Clase para implementar secciones criticas no-reentrantes. El uso general sera el siguiente:

mutex.lock ();
try {
<implementacion de la seccion critica>
mutex.unlock ();
}
catch (Exception&) {
mutex.unlock ();
.... tratamiento de la excepcion ...
}

La funcionalidad de esta clase solo estara disponible en aplicaciones multithread.

See also
anna::Guard
anna::Thread
anna::Semaphore

Constructor & Destructor Documentation

◆ Mutex()

anna::Mutex::Mutex ( const Mode::_v  mode = Mode::Recursive)
explicit

Constructor.

◆ ~Mutex()

virtual anna::Mutex::~Mutex ( )
virtual

Destructor.

Member Function Documentation

◆ lock()

virtual void anna::Mutex::lock ( )
virtualnoexcept

Marca el inicio del acceso seguro a este objeto.

Warning
Cada invocacion a este metodo debe tener su correspondiente llamada al metodo unlock. Es muy aconsejable delegar las llamadas a estos metodos en una instancia Guard.

Implements anna::Safe.

◆ operator const pthread_mutex_t *()

anna::Mutex::operator const pthread_mutex_t * ( ) const
inline

Operador de conversión.

Returns
El pthread_mutex_t asociado a esta instancia.
70  {
71 #ifdef _MT
72  return &a_id;
73 #else
74  return NULL;
75 #endif
76  }
Here is the call graph for this function:

◆ trylock()

bool anna::Mutex::trylock ( )
noexcept

Devuelve true en caso de que haya conseguido bloquear el mutex, o false en otro caso.

Returns
true en caso de que haya conseguido bloquear el mutex, o false en otro caso.

◆ unlock()

virtual void anna::Mutex::unlock ( )
virtual

Indica el final del acceso seguro iniciado al invocar lock.

Warning
Indica el final del acceso seguro iniciado al invocar lock. Es muy aconsejable delegar las llamadas a estos metodos en una instancia Guard.

Implements anna::Safe.


The documentation for this class was generated from the following file: