node: Ensure that processEvents blocks only if there are active events
Active events include:
- expressed Interests and awaiting for Data or Timeout
- set Interest filter
Change-Id: I75631ffca888a66ac7f31f38c7aa5fe204e2d510
diff --git a/src/transport/unix-transport.cpp b/src/transport/unix-transport.cpp
index 0463916..2704df1 100644
--- a/src/transport/unix-transport.cpp
+++ b/src/transport/unix-transport.cpp
@@ -110,6 +110,11 @@
if (error)
{
+ if (error == boost::system::errc::operation_canceled) {
+ // async receive has been explicitly cancelled (e.g., socket close)
+ return;
+ }
+
socket_.close(); // closing at this point may not be that necessary
transport_.isConnected_ = true;
throw Transport::Error(error, "error while receiving data from socket");