std::shared...hared_until(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– std::shared_timed_mutex::try_lock_shared_until

okay so welcome to the C++ Standard Libary manual β€” yes, that spelling is literally in the header, bestie 🫢. This page is all about std::shared_timed_mutex::try_lock_shared_until, and it’s giving β€œshared lock, but make it deadline-coded.”


🌟 NAME

std::shared_timed_mutex::try_lock_shared_until β€” std::shared_timed_mutex::try_lock_shared_until


✨ Synopsis ✨

template< class Clock, class Duration >
bool try_lock_shared_until( const std::chrono::time_point<Clock,Duration>& timeout_time );

This one is here since C++14, and it tries to lock the mutex in shared mode. It blocks until the specified timeout_time has been reached or the lock is acquired β€” whichever comes first. On successful lock acquisition it returns true, otherwise it returns false.

If timeout_time has already passed, this function behaves like try_lock_shared().

Vibe check on the clock: Clock must meet the Clock requirements. The program is ill-formed if std::chrono::is_clock_v<Clock> is false. (since C++20)

The standard recommends that the clock tied to timeout_time be used, in which case adjustments of the clock may be taken into account. So the duration of the block might be more or less than timeout_time - Clock::now() at the time of the call, depending on the direction of the adjustment and whether it is honored by the implementation. The function also may block until after timeout_time has been reached due to process scheduling or resource contention delays.

As with try_lock_shared(), this function is allowed to fail spuriously and return false even if the mutex was not locked by any other thread at some point before timeout_time.

Prior unlock() operation on the same mutex synchronizes-with (as defined in std::memory_order) this operation if it returns true.

⚠️ danger alert: if try_lock_shared_until is called by a thread that already owns the mutex in any mode (shared or exclusive), the behavior is undefined. no cap, do not do that.

πŸŽ€ Parameters

  • timeout_time β€” maximum time point to block until

πŸ¦‹ Return value

true if the shared lock ownership was acquired successfully, otherwise false.


🌸 Exceptions

Any exception thrown by clock, time_point, or duration during the execution (clocks, time points, and durations provided by the standard library never throw).


πŸ“ Example

This section is incomplete Reason: no example

bestie the example section is literally just vibes and a todo note 😭


πŸ”₯ See also

  • try_lock_until β€” tries to lock the mutex, returns if the mutex has been unavailable until specified time point has been reached (public member function)
  • try_lock_shared β€” tries to lock the mutex for shared ownership, returns if the mutex is not available (public member function)
  • try_lock_shared_for β€” tries to lock the mutex for shared ownership, returns if the mutex has been unavailable for the specified timeout duration (public member function)

🏷️ Category

  • Todo no example

source: http://cppreference.com Β· version/date: 2024.06.10 Β· page title: std::shared...hared_until(3) β€” mwah, that’s the whole man page, periodt πŸ’…βœ¨

πŸ“¦ where this page comes from