MBarrier for Cross-Thread Synchronization

T0 (producer)
MBar
T1 (consumer)
Timeline
Working / active
Signaling operation
Blocked / waiting
Barrier state
Idle
Signaling to change mbar state
Sync threads after init

Setup (T0)

mbarrier.init(mbar, 1) — setup once across all runs, explicit sync after setup.

Producer (T0)

mbarrier.arrive(mbar) decrements pending_count. When it hits 0, phase completes.

Consumer (T1)

mbarrier.try_wait(mbar, phase) suspends T1 until phase completes.