Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::recurs..._lock_until(3)  C++ Standard Libary std::recurs..._lock_until(3)

NAME
       std::recursive_timed_mutex::try_lock_until  -  std::recursive_timed_mu-
       tex::try_lock_until

Synopsis
	  template< class Clock, class Duration	>
	  bool try_lock_until( const std::chrono::time_point<Clock, Duration>&
       (since C++11)
	  timeout_time );

	  Tries	to lock	the mutex. Blocks  until  specified  timeout_time  has
       been reached
	  (timeout)  or	the lock is acquired (owns the mutex), whichever comes
       first. On
	  successful lock acquisition returns true, otherwise returns false.

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

	  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. Thus, the	 dura-
       tion 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  hon-
       ored 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(), 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 de-
       fined in
	  std::memory_order) this operation if it returns true.

	  A  thread  may  call try_lock_until on a recursive mutex repeatedly.
       Successful calls
	  to try_lock_until increment the ownership count: the mutex will only
       be released
	  after	the thread makes a matching number of calls to unlock.

	  The maximum number of	levels of ownership is unspecified. A call  to
       try_lock_until
	  will return false if this number is exceeded.

Parameters
	  timeout_time - maximum time point to block until

Return value
	  true if the lock was acquired	successfully, otherwise	false.

Exceptions
	  Any exception	thrown by timeout_time (clocks,	time points, and dura-
       tions provided by
	  the standard library never throw).

Example
	   This	section	is incomplete
	   Reason: no example

	 Defect	reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	     DR	   Applied to	 Behavior as published		   Correct be-
       havior
	  LWG  2093 C++11      try_lock_until threw nothing throws timeout-re-
       lated exceptions

See also
	  lock	       locks the mutex,	blocks if the mutex is not available
		       (public member function)
	  try_lock     tries to	lock the mutex,	returns	if the	mutex  is  not
       available
		       (public member function)
		       tries to	lock the mutex,	returns	if the mutex has been
	  try_lock_for unavailable for the specified timeout duration
		       (public member function)
	  unlock       unlocks the mutex
		       (public member function)
	  C documentation for
	  mtx_timedlock

Category:
	    * Todo no example

http://cppreference.com		  2024.06.10	  std::recurs..._lock_until(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::recursive_timed_mutex::try_lock_until&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help