producer and consumer problem