// PthreadMutexLocker_t.cxx #include "dataset_util/PThreadMutexLocker.h" #include #include #include using std::string; using std::cout; using std::endl; void msg(string txt) { cout << "*** "; cout << txt; cout << " ***" << endl; } int PThreadMutexLocker_t() { msg("Create mutex"); PThreadMutex mut; cout << mut << endl; assert( mut.is_valid() ); assert( mut.is_unlocked() ); { msg("Lock with reference."); PThreadMutexLocker lock(mut); cout << mut << endl; assert( mut.is_locked() ); msg("Unlock."); } cout << mut << endl; assert( mut.is_unlocked() ); { msg("Lock with pointer."); PThreadMutexLocker lock(&mut); cout << mut << endl; assert( mut.is_locked() ); msg("Unlock."); } cout << mut << endl; assert( mut.is_unlocked() ); { msg("Lock null."); PThreadMutexLocker lock(0); msg("Unlock."); } return 0; } #ifdef CTEST_MAIN int main() { return PThreadMutexLocker_t(); } #endif