producer → bounded buffer → consumer
buffer: 0/5 · produced: 0 · consumed: 0
🧑🍳Producer
running
produced: 0
made —
put() ▸ tail
head ▸ take()
FIFO — oldest leaves firstcapacity 5
🧍Consumer
running
consumed: 0
took —
put(): while (buffer is full) notFull.await();
take(): while (buffer is empty) notEmpty.await();
Two speeds, one buffer between them
Hit + Produce five times, then − Consume. Or press ▶ Auto.
▸
Full buffer parks the producer, empty buffer parks the consumer — that waiting is the pattern.