A barrier is a synchronization device that blocks threads until such time that a predefined number of threads have waited on the same barrier. When a barrier's waiting threads wake up, one is declared leader—discoverable by inspecting the BarrierWaitResult—but this confers no scheduling advantage. A barrier becomes useful when you wish to delay threads behind an unsafe initialization of some resource—say a C library's internals that have no thread-safety at startup, or have a need to force participating threads to start a critical section at roughly the same time. The latter is the broader category, in your author's experience. When programming with atomic variables, you'll run into situations ...
Blocking until the gang's all here - barrier
Get Hands-On Concurrency with Rust now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.