Created on 2012-09-20.00:00:00 last changed 131 months ago
[ This wording is relative to N3376. ]
Change [futures.unique_future] as indicated:
template <class Rep, class Period> future_status wait_for(const chrono::duration<Rep, Period>& rel_time) const;-21- Effects: none if the shared state contains a deferred function ([futures.async]), otherwise blocks until the shared state is ready or until the relative timeout ([thread.req.timing]) specified by rel_time has expired.
-22- Returns: […] -??- Throws: timeout-related exceptions ([thread.req.timing]).template <class Clock, class Duration> future_status wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;-23- Effects: none if the shared state contains a deferred function ([futures.async]), otherwise blocks until the shared state is ready or until the absolute timeout ([thread.req.timing]) specified by abs_time has expired.
-24- Returns: […] -??- Throws: timeout-related exceptions ([thread.req.timing]).
Change [futures.shared_future] as indicated:
template <class Rep, class Period> future_status wait_for(const chrono::duration<Rep, Period>& rel_time) const;-23- Effects: none if the shared state contains a deferred function ([futures.async]), otherwise blocks until the shared state is ready or until the relative timeout ([thread.req.timing]) specified by rel_time has expired.
-24- Returns: […] -??- Throws: timeout-related exceptions ([thread.req.timing]).template <class Clock, class Duration> future_status wait_until(const chrono::time_point<Clock, Duration>& abs_time) const;-25- Effects: none if the shared state contains a deferred function ([futures.async]), otherwise blocks until the shared state is ready or until the absolute timeout ([thread.req.timing]) specified by abs_time has expired.
-26- Returns: […] -??- Throws: timeout-related exceptions ([thread.req.timing]).
[ This resolution should not be adopted before resolving 2093 ]
[ 2013-04-20, Bristol ]
Accepted for the working paper
[ 2012, Portland: move to Review ]
The phrase timeout-related exception does not exist.
2093 was put in review, and there is some dependency here with this issue.
If you provide a user-defined clock that throws, we need to put back an exception to allow that to be done.
We will put this in review and say that this cannot go in before 2093.
The functions future::wait_for, future::wait_until, shared_future::wait_for, and shared_future::wait_for can throw any timeout-related exceptions. It would be better if the wording could be more explicit. This is in line with the changes proposed in LWG 2093's Throws element of condition_variable::wait with predicate.
History | |||
---|---|---|---|
Date | User | Action | Args |
2014-02-20 13:20:35 | admin | set | status: wp -> c++14 |
2013-04-25 19:07:07 | admin | set | status: voting -> wp |
2013-04-20 08:17:49 | admin | set | messages: + msg6495 |
2013-04-20 08:17:49 | admin | set | status: review -> voting |
2012-11-02 22:48:46 | admin | set | messages: + msg6255 |
2012-11-02 22:48:46 | admin | set | messages: + msg6254 |
2012-11-02 22:48:46 | admin | set | status: new -> review |
2012-09-23 21:15:23 | admin | set | messages: + msg6137 |
2012-09-20 00:00:00 | admin | create |