producer-consumer initial commit