Aller au contenu
Bienvenue sur la nouvelle documentation de CppUtils !

Namespace: CppUtils::Thread

template <Chrono::TimePoint TimePoint, Chrono::Duration StepDuration = std::chrono::milliseconds>
auto pollUntil(auto&& predicate, TimePoint timePoint, StepDuration step=std::chrono::milliseconds{20}) -> bool;

template <Chrono::Duration TimeoutDuration = std::chrono::milliseconds, Chrono::Duration StepDuration = std::chrono::milliseconds>
auto pollFor(auto&& predicate, TimeoutDuration timeout=std::chrono::milliseconds{1 '000}, StepDuration step=std::chrono::milliseconds{20}) -> bool;

template <class Mutex, class T>
ReadOnlyAccessor(Mutex&, const T&) -> ReadOnlyAccessor<T, Mutex>;

template <class T>
SharedLocker(T) -> SharedLocker<T>;

template <class T>
WeakPtr(const SharedPtr<T> &) -> WeakPtr<T>;

template <class T>
constexpr auto makeShared(auto&&... arguments) -> SharedPtr<T>;

constexpr auto ownerEqual(const auto& lhs, const auto& rhs) noexcept -> bool;

auto tryAsync(auto&& function, auto&&... args) -> decltype(auto);

template <class Mutex, class T>
Accessor(Mutex&, T&) -> Accessor<T, Mutex>;

template <class T>
UniqueLocker(T) -> UniqueLocker<T>;