class Synchronizable

Synchronizable. More...

Full nameCoral::Synchronizable
Definition#include <synchronizable.h>
Inherited byMultiAudioWriter, SimpleAudioDecoder, SourceStateInfo, SpectrumAnalyzer, Thread, NetworkMonitor, RTCPReceiver, RTPReceiver, TimedThread, AdvancedAudioDecoder, CongestionManagerClient, CongestionManager, CongestionMonitor, NetLogWriter, RoundTripTimePinger, RTCPAbstractServer, AudioServer, RTCPSender, RTPSender, TrafficShaperSingleton, TrafficShaper
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Members


Detailed Description

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:
fileFile name.
lineLine 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:
fileFile name.
lineLine 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:
fileFile name.
lineLine 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:
fileFile name.
lineLine number.

See also: resynchronize