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.