Ensure consumer waits for value when queue is empty
Make producers wait when queue full