YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
wait_until.hpp File Reference
#include <yaclib/async/detail/wait_impl.hpp>
#include <yaclib/async/future.hpp>
#include <yaclib/util/detail/mutex_event.hpp>
#include <chrono>
#include <cstddef>
Include dependency graph for wait_until.hpp:

Go to the source code of this file.

Namespaces

namespace  yaclib
 

Functions

template<typename Event = detail::MutexEvent, typename Clock , typename Duration , typename... Waited>
YACLIB_INLINE std::enable_if_t<(... &&is_waitable_with_timeout_v< Waited >), boolyaclib::WaitUntil (const std::chrono::time_point< Clock, Duration > &timeout_time, Waited &... fs) noexcept
 Wait until specified time has been reached or Ready becomes true.
 
template<typename Event = detail::MutexEvent, typename Clock , typename Duration , typename It , typename Sentinel , typename = std::enable_if_t<is_input_range_pair_v<It, Sentinel> && is_waitable_with_timeout_v<typename std::iterator_traits<It>::reference>>>
YACLIB_INLINE bool yaclib::WaitUntil (const std::chrono::time_point< Clock, Duration > &timeout_time, It begin, Sentinel end) noexcept
 Wait until specified time has been reached or Ready becomes true.
 
template<typename Event = detail::MutexEvent, typename Clock , typename Duration , typename Range , typename = std::enable_if_t< is_input_range_v<Range> && is_waitable_with_timeout_v<typename std::iterator_traits<detail::RangeIterator<Range>>::reference>>>
YACLIB_INLINE bool yaclib::WaitUntil (const std::chrono::time_point< Clock, Duration > &timeout_time, Range &&range) noexcept
 Wait until specified time has been reached or Ready becomes true.
 
template<typename Event = detail::MutexEvent, typename Clock , typename Duration , typename It , typename = std::enable_if_t<is_input_iterator_v<It> && is_waitable_with_timeout_v<typename std::iterator_traits<It>::reference>>>
YACLIB_INLINE bool yaclib::WaitUntil (const std::chrono::time_point< Clock, Duration > &timeout_time, It begin, std::size_t count) noexcept
 Wait until specified time has been reached or Ready becomes true.