diff --git a/src/SocketBuffer.cc b/src/SocketBuffer.cc index 0a09f2ae..f941df90 100644 --- a/src/SocketBuffer.cc +++ b/src/SocketBuffer.cc @@ -169,7 +169,10 @@ ssize_t SocketBuffer::send() if(firstlen > slen) { offset_ += slen; bufq_.front()->progressUpdate(slen, false); - goto fin; + if (socket_->wantRead() || socket_->wantWrite()) { + goto fin; + } + continue; } slen -= firstlen;