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