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");