Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      C++ named requirements:SharedTimedMutex(since C++14)

      From cppreference.com
      <cpp‎ |named req
       
       
      C++ named requirements
       

      TheSharedTimedMutex requirements extend theTimedMutex requirements to include shared lock ownership mode.

      [edit]Requirements

      Additionally, an objectm ofSharedTimedMutex type supports timed shared operations:

      • The expressionm.try_lock_shared_for(duration) has the following properties
      • Behaves as an atomic operation.
      • Attempts to obtain shared ownership of the mutex within the duration specified byduration. Ifduration is less or equalduration.zero(), attempts to obtain the ownership without waiting (as if bytry_lock()). Otherwise, this function blocks until the mutex is acquired or until the time specified byduration passes. It returns withinduration only if it succeeds, but it allowed to fail to acquire the mutex even if at some point in time duringduration it was not owned by another thread. In any case, it returnstrue if the mutex was acquired andfalse otherwise.
      • Iftry_lock_shared_for(duration) succeeds, priorunlock() operations on the same objectsynchronize-with this operation (equivalent to release-acquirestd::memory_order).
      • The behavior is undefined if the calling thread already owns the mutex in any mode.
      • An exception may be thrown by clock, time point, or duration during the execution (clocks, time points, and durations provided by the standard library never throw).
      • If an exception is thrown, the shared lock is not acquired.
      • The expressionm.try_lock_shared_until(time_point) has the following properties
      • Behaves as an atomic operation.
      • Attempts to obtain shared ownership of the mutex within the time left untiltime_point. Iftime_point already passed, attempts to obtain the ownership without locking (as if bytry_lock()). Otherwise, this function blocks until the mutex is acquired or until the time specified bytime_point passes. It returns beforetime_point only if it succeeds, but it allowed to fail to acquire the mutex even if at some point in time beforetime_point it was not owned by another thread. In any case, it returnstrue if the mutex was acquired andfalse otherwise.
      • Iftry_lock_shared_until(time_point) succeeds, priorunlock() operations on the same objectsynchronize-with this operation (equivalent to release-acquirestd::memory_order).
      • The behavior is undefined if the calling thread already owns the mutex in any mode.
      • An exception may be thrown by clock, time point, or duration during the execution (clocks, time points, and durations provided by the standard library never throw).
      • If an exception is thrown, the shared lock is not acquired.

      [edit]Standard library

      The following standard library types satisfySharedTimedMutex requirements:

      provides shared mutual exclusion facility and implements locking with a timeout
      (class)[edit]

      [edit]See also

      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/named_req/SharedTimedMutex&oldid=177791"

      [8]ページ先頭

      ©2009-2025 Movatter.jp