Parcourir la source

[5336] Fix EAGAIN/EWOULDBLOCK handling in UnixDomainSocket

Thomas il y a 7 ans
Parent
commit
eac94fb823
1 fichiers modifiés avec 6 ajouts et 2 suppressions
  1. 6 2
      src/lib/asiolink/unix_domain_socket.cc

+ 6 - 2
src/lib/asiolink/unix_domain_socket.cc

@@ -213,8 +213,10 @@ UnixDomainSocketImpl::sendHandler(const UnixDomainSocket::Handler& remote_handle
     if ((ec.value() == boost::asio::error::would_block) ||
         (ec.value() == boost::asio::error::try_again)) {
         doSend(buffer, remote_handler);
+
+    } else {
+        remote_handler(ec, length);
     }
-    remote_handler(ec, length);
 }
 
 void
@@ -246,8 +248,10 @@ UnixDomainSocketImpl::receiveHandler(const UnixDomainSocket::Handler& remote_han
     if ((ec.value() == boost::asio::error::would_block) ||
         (ec.value() == boost::asio::error::try_again)) {
         doReceive(buffer, remote_handler);
+
+    } else {
+        remote_handler(ec, length);
     }
-    remote_handler(ec, length);
 }
 
 void