+/**
+ * Try to asynchronously get a new message from given mailbox. Return null if none available.
+ */
+kademlia_message_t receive(node_t node, sg_mailbox_t mailbox)
+{
+ if (node->receive_comm == NULL)
+ node->receive_comm = sg_mailbox_get_async(mailbox, &node->received_msg);
+ if (!sg_comm_test(node->receive_comm))
+ return NULL;
+ node->receive_comm = NULL;
+ return node->received_msg;
+}
+