Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::atomic_flag_wait,std::atomic_flag_wait_explicit

      From cppreference.com
      <cpp‎ |atomic
       
       
      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
      atomic_flag_waitatomic_flag_wait_explicit
      (C++20)(C++20)
       
      Defined in header<atomic>
      void atomic_flag_wait(const atomic_flag* object,bool old)noexcept;
      (1)(since C++20)
      void atomic_flag_wait(constvolatile atomic_flag* object,
                             bool old)noexcept;
      (2)(since C++20)
      void atomic_flag_wait_explicit(const atomic_flag* object,
                                     bool old,std::memory_order order)noexcept;
      (3)(since C++20)
      void atomic_flag_wait_explicit(constvolatile atomic_flag* object,
                                     bool old,std::memory_order order)noexcept;
      (4)(since C++20)

      Performs atomic waiting operations.

      Comparesobject->test(std::memory_order_seq_cst) orobject->test(order) withold, and if they are equal then blocks until*object is notified bystd::atomic_flag::notify_one() orstd::atomic_flag::notify_all() (or the thread is unblocked spuriously). This is repeated until the values compare unequal.

      1,2) The memory synchronization order isstd::memory_order_seq_cst.
      3,4) The memory synchronization order isorder.
      Iforder is one ofstd::memory_order_release andstd::memory_order_acq_rel, the behavior is undefined.

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

      Contents

      [edit]Parameters

      object - pointer to the atomic flag to check and wait on
      old - the value to check the atomic flag no longer contains
      order - the memory synchronization ordering

      [edit]Return value

      (none)

      [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 ofstd::atomic_flag)[edit]
      (C++20)
      notifies all threads blocked waiting on the atomic object
      (public member function ofstd::atomic_flag)[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=159558"

      [8]ページ先頭

      ©2009-2025 Movatter.jp