#include <bulkDataNTThreadSyncGuard.h>
Public Member Functions | |
ThreadSyncGuard () | |
ThreadSyncGuard (const char *label, pthread_mutex_t *m) | |
ThreadSyncGuard (const char *label, pthread_mutex_t *m, const ACS::TimeInterval &to) | |
~ThreadSyncGuard () | |
void | acquire (const ACS::TimeInterval &to) |
Private Member Functions | |
ThreadSyncGuard (const ThreadSyncGuard &) | |
ThreadSyncGuard & | operator= (const ThreadSyncGuard &) |
Private Attributes | |
std::string | m_label |
pthread_mutex_t * | m_mutex_p |
bool | m_acquired |
An automatic unlocking guard that allows a timed wait.
AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard | ( | ) |
An empty constructor to force a healthy and no-op construction of our ACS base.
AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard | ( | const char * | label, | |
pthread_mutex_t * | m | |||
) |
Instanciates but it does not try to lock.
AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard | ( | const char * | label, | |
pthread_mutex_t * | m, | |||
const ACS::TimeInterval & | to | |||
) |
Instanciates and tries to lock.
AcsBulkdata::ThreadSyncGuard::~ThreadSyncGuard | ( | ) |
Destructor unlocks the mutex if needed.
AcsBulkdata::ThreadSyncGuard::ThreadSyncGuard | ( | const ThreadSyncGuard & | ) | [private] |
Copying from a second guard is not part of the semantic, the mutex state is not be transfer from one object to a second.
void AcsBulkdata::ThreadSyncGuard::acquire | ( | const ACS::TimeInterval & | to | ) |
Acquire with timeout.
ThreadSyncGuard& AcsBulkdata::ThreadSyncGuard::operator= | ( | const ThreadSyncGuard & | ) | [private] |
bool AcsBulkdata::ThreadSyncGuard::m_acquired [private] |
Whether the mutex is currently locked or not.
std::string AcsBulkdata::ThreadSyncGuard::m_label [private] |
A short description to add meaningful content to error logs.
pthread_mutex_t* AcsBulkdata::ThreadSyncGuard::m_mutex_p [private] |
Mutex provided by the user.