N3191: C++ Timeout Specification
llvm-svn: 119909
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 3dc6455ff0216030b1864b1d9676549f74f1a128
diff --git a/include/__mutex_base b/include/__mutex_base
index 554ec3f..d3b2a1b 100644
--- a/include/__mutex_base
+++ b/include/__mutex_base
@@ -382,11 +382,11 @@
const chrono::duration<_Rep, _Period>& __d)
{
using namespace chrono;
- system_clock::time_point __s_now = system_clock::now();
- monotonic_clock::time_point __c_now = monotonic_clock::now();
+ system_clock::time_point __s_now = system_clock::now();
+ steady_clock::time_point __c_now = steady_clock::now();
__do_timed_wait(__lk, __s_now + __ceil<nanoseconds>(__d));
- return monotonic_clock::now() - __c_now < __d ? cv_status::no_timeout :
- cv_status::timeout;
+ return steady_clock::now() - __c_now < __d ? cv_status::no_timeout :
+ cv_status::timeout;
}
template <class _Rep, class _Period, class _Predicate>
@@ -396,7 +396,7 @@
const chrono::duration<_Rep, _Period>& __d,
_Predicate __pred)
{
- return wait_until(__lk, chrono::monotonic_clock::now() + __d,
+ return wait_until(__lk, chrono::steady_clock::now() + __d,
_STD::move(__pred));
}
diff --git a/include/chrono b/include/chrono
index d41b88f..97b0c81 100644
--- a/include/chrono
+++ b/include/chrono
@@ -223,26 +223,26 @@
typedef duration::rep rep;
typedef duration::period period;
typedef chrono::time_point<system_clock> time_point;
- static const bool is_monotonic = false;
+ static const bool is_steady = false;
static time_point now();
static time_t to_time_t (const time_point& __t);
static time_point from_time_t(time_t __t);
};
-class monotonic_clock
+class steady_clock
{
public:
typedef nanoseconds duration;
typedef duration::rep rep;
typedef duration::period period;
- typedef chrono::time_point<monotonic_clock, duration> time_point;
- static const bool is_monotonic = true;
+ typedef chrono::time_point<steady_clock, duration> time_point;
+ static const bool is_steady = true;
static time_point now();
};
-typedef monotonic_clock high_resolution_clock;
+typedef steady_clock high_resolution_clock;
} // chrono
@@ -843,26 +843,26 @@
typedef duration::rep rep;
typedef duration::period period;
typedef chrono::time_point<system_clock> time_point;
- static const bool is_monotonic = false;
+ static const bool is_steady = false;
static time_point now();
static time_t to_time_t (const time_point& __t);
static time_point from_time_t(time_t __t);
};
-class _LIBCPP_VISIBLE monotonic_clock
+class _LIBCPP_VISIBLE steady_clock
{
public:
typedef nanoseconds duration;
typedef duration::rep rep;
typedef duration::period period;
- typedef chrono::time_point<monotonic_clock, duration> time_point;
- static const bool is_monotonic = true;
+ typedef chrono::time_point<steady_clock, duration> time_point;
+ static const bool is_steady = true;
static time_point now();
};
-typedef monotonic_clock high_resolution_clock;
+typedef steady_clock high_resolution_clock;
} // chrono
diff --git a/include/condition_variable b/include/condition_variable
index 682fb45..124d388 100644
--- a/include/condition_variable
+++ b/include/condition_variable
@@ -232,7 +232,7 @@
condition_variable_any::wait_for(_Lock& __lock,
const chrono::duration<_Rep, _Period>& __d)
{
- return wait_until(__lock, chrono::monotonic_clock::now() + __d);
+ return wait_until(__lock, chrono::steady_clock::now() + __d);
}
template <class _Lock, class _Rep, class _Period, class _Predicate>
@@ -242,7 +242,7 @@
const chrono::duration<_Rep, _Period>& __d,
_Predicate __pred)
{
- return wait_until(__lock, chrono::monotonic_clock::now() + __d,
+ return wait_until(__lock, chrono::steady_clock::now() + __d,
_STD::move(__pred));
}
diff --git a/include/future b/include/future
index 55b0ead..be975f4 100644
--- a/include/future
+++ b/include/future
@@ -603,7 +603,7 @@
future_status
__assoc_sub_state::wait_for(const chrono::duration<_Rep, _Period>& __rel_time) const
{
- return wait_until(chrono::monotonic_clock::now() + __rel_time);
+ return wait_until(chrono::steady_clock::now() + __rel_time);
}
template <class _R>
diff --git a/include/mutex b/include/mutex
index 45ce669..c87d0fd 100644
--- a/include/mutex
+++ b/include/mutex
@@ -221,7 +221,7 @@
template <class _Rep, class _Period>
_LIBCPP_INLINE_VISIBILITY
bool try_lock_for(const chrono::duration<_Rep, _Period>& __d)
- {return try_lock_until(chrono::monotonic_clock::now() + __d);}
+ {return try_lock_until(chrono::steady_clock::now() + __d);}
template <class _Clock, class _Duration>
bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t);
void unlock();
@@ -264,7 +264,7 @@
template <class _Rep, class _Period>
_LIBCPP_INLINE_VISIBILITY
bool try_lock_for(const chrono::duration<_Rep, _Period>& __d)
- {return try_lock_until(chrono::monotonic_clock::now() + __d);}
+ {return try_lock_until(chrono::steady_clock::now() + __d);}
template <class _Clock, class _Duration>
bool try_lock_until(const chrono::time_point<_Clock, _Duration>& __t);
void unlock();
diff --git a/include/thread b/include/thread
index fe671b2..abb56f4 100644
--- a/include/thread
+++ b/include/thread
@@ -406,10 +406,10 @@
template <class _Duration>
inline _LIBCPP_INLINE_VISIBILITY
void
-sleep_until(const chrono::time_point<chrono::monotonic_clock, _Duration>& __t)
+sleep_until(const chrono::time_point<chrono::steady_clock, _Duration>& __t)
{
using namespace chrono;
- sleep_for(__t - monotonic_clock::now());
+ sleep_for(__t - steady_clock::now());
}
inline _LIBCPP_INLINE_VISIBILITY