Producer-consumer problem