Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atomic_flag::wait

      From cppreference.com
      <cpp‎ |atomic‎ |atomic flag

      [edit template]
       
       
      Concurrency support library
      Threads
      (C++11)
      (C++20)
      this_thread namespace
      (C++11)
      (C++11)
      (C++11)
      Cooperative cancellation
      Mutual exclusion
      Generic lock management
      (C++11)
      (C++11)
      (C++11)
      (C++11)
      Condition variables
      (C++11)
      Semaphores
      Latches and Barriers
      (C++20)
      (C++20)
      Futures
      (C++11)
      (C++11)
      (C++11)
      Safe reclamation
      Hazard pointers
      Atomic types
      (C++11)
      (C++20)
      Initialization of atomic types
      (C++11)(deprecated in C++20)
      (C++11)(deprecated in C++20)
      Memory ordering
      (C++11)(deprecated in C++26)
      Free functions for atomic operations
      Free functions for atomic flags
       
       
      void wait(bool old,std::memory_order order=
                               std::memory_order_seq_cst)constnoexcept;
      (1)(since C++20)
      (constexpr since C++26)
      void wait(bool old,

                 std::memory_order order=

                     std::memory_order_seq_cst)constvolatilenoexcept;
      (2)(since C++20)

      Performs atomic waiting operations. Behaves as if it repeatedly performs the following steps:

      • Comparethis->test(order) with that ofold.
        • If those are equal, then blocks until*this is notified bynotify_one() ornotify_all(), or the thread is unblocked spuriously.
        • Otherwise, returns.

      These functions are guaranteed to return only if value has changed, even if underlying implementation unblocks spuriously.

      Iforder is notstd::memory_order_relaxed,std::memory_order_consume,std::memory_order_acquire orstd::memory_order_seq_cst, the behavior is undefined.

      Contents

      [edit]Parameters

      old - the value to check theatomic_flag's object no longer contains
      order - memory order constraints to enforce

      [edit]Notes

      This form of change-detection is often more efficient than simple polling or pure spinlocks.

      Due to theABA problem, transient changes fromold to another value and back toold might be missed, and not unblock.


      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]See also

      (C++20)
      notifies at least one thread waiting on the atomic object
      (public member function)[edit]
      (C++20)
      notifies all threads blocked waiting on the atomic object
      (public member function)[edit]
      notifies a thread blocked in atomic_flag_wait
      (function)[edit]
      notifies all threads blocked in atomic_flag_wait
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/atomic/atomic_flag/wait&oldid=116006"

      [8]ページ先頭

      ©2009-2025 Movatter.jp