add timeout on receive_data