Opened 9 years ago
Last modified 9 years ago
#8519 closed Feature Requests
Sync: Add a completion_latch class — at Initial Version
| Reported by: | viboes | Owned by: | Anthony Williams |
|---|---|---|---|
| Milestone: | Boost 1.55.0 | Component: | thread |
| Version: | Boost 1.54.0 | Severity: | Problem |
| Keywords: | Cc: |
Description
Based on the ideas in N3600- C++ Latches and Barriers http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3600.html
implement a completion_latch class that could have the following interface
class completion_latch
{
public:
typedef 'implementation defined' completion_function;
completion_latch(completion_latch const&) = delete;
completion_latch& operator=(completion_latch const&) = delete;
completion_latch(std::size_t count);
template <typename F>
completion_latch(std::size_t count, F&& funct);
~completion_latch();
void wait();
bool try_wait();
template <class Rep, class Period>
cv_status wait_for(const chrono::duration<Rep, Period>& rel_time);
template <class lock_type, class Clock, class Duration>
cv_status wait_until(const chrono::time_point<Clock, Duration>& abs_time);
void count_down();
void count_down_and_wait();
void reset(std::size_t count);
template <typename F>
completion_function then(F&& funct);
};
Note:
See TracTickets
for help on using tickets.
