Synchronization Playground

Primitives: mutex (buffer access) + semaphore empty (tracks empty slots) + semaphore full (tracks filled slots)

Producer waits on empty, locks mutex, adds item, unlocks, signals full. Consumer waits on full, locks mutex, removes item, unlocks, signals empty.

BLOCKEDACQUIRED / PASSEDRELEASEDsem_signal
Click Run to start the simulation...