CommImplPtr find_matching_comm(CommImpl::Type type, bool (*match_fun)(void*, void*, CommImpl*), void* this_user_data,
const CommImplPtr& my_synchro, bool done, bool remove_matching);
bool is_permanent() const { return permanent_receiver_ != nullptr; }
CommImplPtr find_matching_comm(CommImpl::Type type, bool (*match_fun)(void*, void*, CommImpl*), void* this_user_data,
const CommImplPtr& my_synchro, bool done, bool remove_matching);
bool is_permanent() const { return permanent_receiver_ != nullptr; }
bool empty() const { return comm_queue_.empty(); }
size_t size() const { return comm_queue_.size(); }
CommImplPtr front() const { return comm_queue_.front(); }
bool empty() const { return comm_queue_.empty(); }
size_t size() const { return comm_queue_.size(); }
CommImplPtr front() const { return comm_queue_.front(); }