int main() { m.lock(); std::thread t(f); std::this_thread::sleep_for(ms(250)); m.unlock(); t.join(); }
int tc_libcxx_thread_thread_timedmutex_recursive_lock(void) { m.lock(); std::thread t(f); std::this_thread::sleep_for(ms(250)); m.unlock(); t.join(); TC_SUCCESS_RESULT(); return 0; }
void f1() { time_point t0 = Clock::now(); assert(m.try_lock_for(ms(300)) == true); time_point t1 = Clock::now(); assert(m.try_lock()); m.unlock(); m.unlock(); ns d = t1 - t0 - ms(250); assert(d < ns(50000000)); // within 50ms }
void f() { time_point t0 = Clock::now(); m.lock(); time_point t1 = Clock::now(); m.lock(); m.unlock(); m.unlock(); ns d = t1 - t0 - ms(250); assert(d < ms(50)); // within 50ms }
static int f() { time_point t0 = Clock::now(); m.lock(); time_point t1 = Clock::now(); m.lock(); m.unlock(); m.unlock(); ns d = t1 - t0 - ms(250); TC_ASSERT_EXPR(d < ms(50)); // within 50ms return 0; }
int main() { { m.lock(); std::thread t(f1); std::this_thread::sleep_for(ms(250)); m.unlock(); t.join(); } { m.lock(); std::thread t(f2); std::this_thread::sleep_for(ms(300)); m.unlock(); t.join(); } }
void f2() { time_point t0 = Clock::now(); assert(m.try_lock_for(ms(250)) == false); time_point t1 = Clock::now(); ns d = t1 - t0 - ms(250); assert(d < ns(50000000)); // within 50ms }