producer/consumer problem.