Blocking until the gang's all here - barrier

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 ...

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.