- void send(m_task_t task, const char *dest);
- void send(m_task_t task, const std::string& dest);
- m_task_t recv();
- int sent_count();
+ // Send a message to the "dest" mailbox
+ void send(const char* dest, message* msg);
+
+ // Try to flush pending sending communications.
+ // If "wait" is true, blocks until success.
+ void flush(bool wait);
+
+ // Try to get a message. Returns true on success.
+ // Parameter "timeout" may be 0 for non-blocking operation, -1 for
+ // infinite waiting, or any positive timeout.
+ bool recv(message*& msg, m_host_t& from, double timeout) {
+ return received.pop(msg, from, timeout);
+ }