|
|
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!
See also: Thread
Synchronizable () |
Constructor
~Synchronizable () |
Destructor
inline void synchronized () |
synchronized() begins a synchronized block. The block has to be finished by unsynchronized(). synchronized() will wait until the mutex is available.
See also: unsynchronized, synchronizedTry
inline bool synchronizedTry () |
synchronizedTry() tries to begins a synchronized block. It does the same as synchronized(), but returns immediately, if the mutex is obtained by another thread.
See also: synchronized, unsynchronized
inline void unsynchronized () |
unsynchronized() ends a synchronized block, which has begun by synchronized().
See also: synchronized
void resynchronize () |
Do reinitialization of Synchronizable.
void 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.
Parameters:
file | File name. |
line | Line number. |
See also: synchronized
void 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.
Parameters:
file | File name. |
line | Line number. |
See also: unsynchronized
bool 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.
Parameters:
file | File name. |
line | Line number. |
See also: synchronizedTry
void 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.
Parameters:
file | File name. |
line | Line number. |
See also: resynchronize