+ bool comm_completed = true;
+ try {
+ if (not comm_receive->test())
+ comm_completed = false;
+ } catch (const simgrid::TimeoutException&) {
+ XBT_DEBUG("Caught a timeout, go ahead.");
+ }
+
+ if (comm_completed) {
+ if (data != nullptr) {
+ ChordMessage* message = static_cast<ChordMessage*>(data);
+ handleMessage(message);
+ data = nullptr;
+ }
+ comm_receive = nullptr;
+ } else {