only waiting when there is no data