std::experimental::flex_barrier (3) - Linux Manuals
std::experimental::flex_barrier: std::experimental::flex_barrier
Command to display std::experimental::flex_barrier
manual in Linux: $ man 3 std::experimental::flex_barrier
NAME
std::experimental::flex_barrier - std::experimental::flex_barrier
Synopsis
Defined in header <experimental/barrier>
class flex_barrier; (concurrency TS)
The class std::experimental::flex_barrier provides a thread-coordination mechanism that allows a set of participating threads to block until an operation is completed. Unlike std::experimental::latch, barriers are reusable; once the participating threads are released from a barrier's synchronization point, they can reuse the same barrier.
A barrier has a completion phase, which is executed by one of the participating threads once all threads in the set of participating threads arrive at the synchronization point. The arrive_and_wait and arrive_and_drop calls synchronize_with the start of the completion phase; the end of the completion phase synchronizes with the returns from all calls blocked by its completion.
std::experimental::flex_barrier allows the user to control the completion phase with a function object. If the function object returns -1, the set of participating threads is unchanged (and the same set of participating threads must arrive at the synchronization point in the next cycle); otherwise the set of participating threads becomes a new set with a size equal to the returned value N, and consists of the next N threads to arrive at the barrier's synchronization point.
Users who do not need this functionality can use std::experimental::barrier.
Member functions
constructs a flex_barrier
constructor (public member function)
destroys the flex_barrier
destructor (public member function)
operator= not copy-assignable
(public member function)
[deleted]
arrive at the synchronization point and block
arrive_and_wait (public member function)
arrive at the synchronization point and remove the current thread from the set of participating threads
arrive_and_drop (public member function)
Pages related to std::experimental::flex_barrier
- std::experimental::flex_barrier::arrive_and_drop (3) - std::experimental::flex_barrier::arrive_and_drop
- std::experimental::flex_barrier::arrive_and_wait (3) - std::experimental::flex_barrier::arrive_and_wait
- std::experimental::flex_barrier::flex_barrier (3) - std::experimental::flex_barrier::flex_barrier
- std::experimental::flex_barrier::~flex_barrier (3) - std::experimental::flex_barrier::~flex_barrier
- std::experimental::filesystem::absolute,std::experimental::filesystem::system_complete (3) - std::experimental::filesystem::absolute,std::experimental::filesystem::system_complete
- std::experimental::filesystem::begin(directory_iterator), (3) - std::experimental::filesystem::begin(directory_iterator),
- std::experimental::filesystem::begin(directory_iterator),std::experimental::filesystem::end(directory_iterator) (3) - std::experimental::filesystem::begin(directory_iterator),std::experimental::filesystem::end(directory_iterator)
- std::experimental::filesystem::begin(recursive_directory_iterator), (3) - std::experimental::filesystem::begin(recursive_directory_iterator),
- std::experimental::filesystem::begin(recursive_directory_iterator),std::experimental::filesystem::end(recursive_directory_iterator) (3) - std::experimental::filesystem::begin(recursive_directory_iterator),std::experimental::filesystem::end(recursive_directory_iterator)
- std::experimental::filesystem::canonical (3) - std::experimental::filesystem::canonical
- std::experimental::filesystem::copy (3) - std::experimental::filesystem::copy
- std::experimental::filesystem::copy_file (3) - std::experimental::filesystem::copy_file
- std::experimental::filesystem::copy_options (3) - std::experimental::filesystem::copy_options
- std::experimental::filesystem::copy_symlink (3) - std::experimental::filesystem::copy_symlink
- std::experimental::filesystem::create_directory, (3) - std::experimental::filesystem::create_directory,
- std::experimental::filesystem::create_directory,std::experimental::filesystem::create_directories (3) - std::experimental::filesystem::create_directory,std::experimental::filesystem::create_directories
- std::experimental::filesystem::create_hard_link (3) - std::experimental::filesystem::create_hard_link
- std::experimental::filesystem::create_symlink, (3) - std::experimental::filesystem::create_symlink,
- std::experimental::filesystem::create_symlink,std::experimental::filesystem::create_directory_symlink (3) - std::experimental::filesystem::create_symlink,std::experimental::filesystem::create_directory_symlink
- std::experimental::filesystem::current_path (3) - std::experimental::filesystem::current_path
- std::experimental::filesystem::directory_entry (3) - std::experimental::filesystem::directory_entry
- std::experimental::filesystem::directory_entry::assign (3) - std::experimental::filesystem::directory_entry::assign
- std::experimental::filesystem::directory_entry::directory_entry (3) - std::experimental::filesystem::directory_entry::directory_entry
- std::experimental::filesystem::directory_entry::operator= (3) - std::experimental::filesystem::directory_entry::operator=