-/* Copyright (c) 2007-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* two processes may have pushed the same mbox_create simcall at the same time */
auto m = mailboxes.find(name);
if (m == mailboxes.end()) {
- MailboxImpl* mbox = new MailboxImpl(name);
+ auto* mbox = new MailboxImpl(name);
XBT_DEBUG("Creating a mailbox at %p with name %s", mbox, name.c_str());
mailboxes[name] = mbox;
return mbox;
xbt_die("Comm %p not found in mailbox %s", comm.get(), this->get_cname());
}
-CommImplPtr MailboxImpl::iprobe(int type, int (*match_fun)(void*, void*, CommImpl*), void* data)
+CommImplPtr MailboxImpl::iprobe(int type, bool (*match_fun)(void*, void*, CommImpl*), void* data)
{
XBT_DEBUG("iprobe from %p %p", this, &comm_queue_);
CommImplPtr this_comm;
CommImpl::Type smx_type;
if (type == 1) {
- this_comm = CommImplPtr(new CommImpl());
- this_comm->set_type(CommImpl::Type::SEND);
+ this_comm = CommImplPtr(new CommImpl(CommImpl::Type::SEND));
smx_type = CommImpl::Type::RECEIVE;
} else {
- this_comm = CommImplPtr(new CommImpl());
- this_comm->set_type(CommImpl::Type::RECEIVE);
+ this_comm = CommImplPtr(new CommImpl(CommImpl::Type::RECEIVE));
smx_type = CommImpl::Type::SEND;
}
CommImplPtr other_comm = nullptr;
* @param remove_matching whether or not to clean the found object from the queue
* @return The communication activity if found, nullptr otherwise
*/
-CommImplPtr MailboxImpl::find_matching_comm(CommImpl::Type type, int (*match_fun)(void*, void*, CommImpl*),
+CommImplPtr MailboxImpl::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)
{
auto& comm_queue = done ? done_comm_queue_ : comm_queue_;
for (auto it = comm_queue.begin(); it != comm_queue.end(); it++) {
- CommImplPtr& comm = *it;
+ const CommImplPtr& comm = *it;
if (comm->type_ == CommImpl::Type::SEND) {
other_user_data = comm->src_data_;