How can I check if there is any incoming data to a boost::asio::serial_port? If there is no data, the program shouldn't read anything, and instead continue with other activities. Hence, to check for the data I cannot use the read function since it would lock my program until any data has arrived.