12345678910111213141516171819202122232425262728293031323334 |
- /*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-04-27 flybreak the first version.
- */
- #include "condition_variable"
- namespace std
- {
- void condition_variable::wait(unique_lock<mutex>& lock)
- {
- int err = pthread_cond_wait(&_m_cond, lock.mutex()->native_handle());
- if (err)
- {
- throw_system_error(err, "condition_variable::wait: failed to wait on a condition");
- }
- }
- void notify_all_at_thread_exit(condition_variable& cond, unique_lock<mutex> lk)
- {
- // TLS currently not available
- mutex* mut = lk.release();
- mut->unlock();
- cond.notify_all();
- }
- } // namespace std
|