- // Receive procedure: wait (or not) for a message to come.
- // Returns false if some "close" message was received, returns true
- // otherwise.
- enum recv_wait_mode { NO_WAIT = 0, WAIT, WAIT_FOR_CLOSE };
- bool receive(recv_wait_mode wait);
+ // Returns true if there remains neighbors to listen for
+ bool may_receive() { return ctrl_close_pending || data_close_pending; }
+
+ // Receive procedure: wait (or not) for a message to come
+ void receive(bool wait);