The condition_variable examples spoke about std::lock_guard. But this doesn't work in practice, as lock_guard has no unlock() method. Use unique_lock instead, as test_condition.cpp does.