add: task 2 of this work, producer-consumer problem