| 397 | |
| 398 | template <class Rep, class Period> |
| 399 | cv_status |
| 400 | wait_for( |
| 401 | unique_lock<mutex>& lock, |
| 402 | const chrono::duration<Rep, Period>& d) |
| 403 | { |
| 404 | using namespace chrono; |
| 405 | if (d<=chrono::duration<Rep, Period>::zero()) { |
| 406 | return cv_status::timeout; |
| 407 | } |
| 408 | |
| 409 | steady_clock::time_point c_now = steady_clock::now(); |
| 410 | do_wait(lock, ceil<milliseconds>(d).count()); |
| 411 | return steady_clock::now() - c_now < d ? cv_status::no_timeout : |
| 412 | cv_status::timeout; |
| 413 | } |
| 414 | |
| 415 | template <class Clock, class Duration, class Predicate> |
| 416 | bool |
no test coverage detected