diff --git a/src/peer_connection.cpp b/src/peer_connection.cpp index 4c39eb67eadcf741b6a4256b7a5a4e92b093cfdb..d1c0179a9e1476419f1e602f31c92573ab61bc3a 100644 --- a/src/peer_connection.cpp +++ b/src/peer_connection.cpp @@ -578,9 +578,12 @@ PeerConnection::PeerConnectionImpl::eventLoop() throw std::system_error(ec); }); handle_stream_list(outputs_, [&](auto& stream) { - auto size = endpoint_->read(buf, ec); - if (!ec) - return size > 0 and stream->write(buf); + if (endpoint_->waitForData(10, ec) > 0) { + auto size = endpoint_->read(buf, ec); + if (!ec) + return size > 0 and stream->write(buf); + } else if (!ec) + return true; // continue on msg handling throw std::system_error(ec); }); }