producer consumer problem