|
RTP Trace System
1.0
|
#include <synchronizable.h>
Public Member Functions | |
| Synchronizable () | |
| ~Synchronizable () | |
| void | synchronized () |
| bool | synchronizedTry () |
| void | unsynchronized () |
| void | resynchronize () |
| void | synchronized_debug (const char *file, const cardinal line) |
| void | unsynchronized_debug (const char *file, const cardinal line) |
| bool | synchronizedTry_debug (const char *file, const cardinal line) |
| void | resynchronize_debug (const char *file, const cardinal line) |
Private Attributes | |
| pthread_mutex_t | Mutex |
This class realizes synchronized access to a thread's data by other threads. Synchronization is done by using a global pthread mutex and obtaining access to this mutex by synchronized() for synchronized access and releasing this mutex for unsynchronized access. IMPORTANT: Do *not* use synchronized()/unsynchronized() within async signal handlers. This may cause deadlocks. See PThread's pthread_mutex_lock man-page, section "Async Signal Safety" for more information!
Constructor
Destructor
| void Coral::Synchronizable::resynchronize | ( | ) |
Do reinitialization of Synchronizable.
| void Coral::Synchronizable::resynchronize_debug | ( | const char * | file, |
| const cardinal | line | ||
| ) |
Debug version of resynchronize. This will print PID, file name and line number, followed by debug information.
| file | File name. |
| line | Line number. |
| void Coral::Synchronizable::synchronized | ( | ) | [inline] |
synchronized() begins a synchronized block. The block has to be finished by unsynchronized(). synchronized() will wait until the mutex is available.
| void Coral::Synchronizable::synchronized_debug | ( | const char * | file, |
| const cardinal | line | ||
| ) |
Debug version of synchronized. This will print PID, file name and line number, followed by debug information.
| file | File name. |
| line | Line number. |
| bool Coral::Synchronizable::synchronizedTry | ( | ) | [inline] |
synchronizedTry() tries to begins a synchronized block. It does the same as synchronized(), but returns immediately, if the mutex is obtained by another thread.
| bool Coral::Synchronizable::synchronizedTry_debug | ( | const char * | file, |
| const cardinal | line | ||
| ) |
Debug version of synchronizedTry. This will print PID, file name and line number, followed by debug information.
| file | File name. |
| line | Line number. |
| void Coral::Synchronizable::unsynchronized | ( | ) | [inline] |
unsynchronized() ends a synchronized block, which has begun by synchronized().
| void Coral::Synchronizable::unsynchronized_debug | ( | const char * | file, |
| const cardinal | line | ||
| ) |
Debug version of unsynchronized. This will print PID, file name and line number, followed by debug information.
| file | File name. |
| line | Line number. |
pthread_mutex_t Coral::Synchronizable::Mutex [private] |