single producer consumer problem