X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/892e136b3be07e45110a5a2db2889470386e954a..1c178c9855b20b64211ebea92eb9f783b875bbe1:/src/simix/smx_network.cpp diff --git a/src/simix/smx_network.cpp b/src/simix/smx_network.cpp index 266b0cd586..e6ce384b48 100644 --- a/src/simix/smx_network.cpp +++ b/src/simix/smx_network.cpp @@ -5,6 +5,10 @@ #include +#include + +#include + #include "src/surf/surf_interface.hpp" #include "src/simix/smx_private.h" #include "xbt/log.h" @@ -43,7 +47,7 @@ smx_mailbox_t SIMIX_mbox_create(const char *name) smx_mailbox_t mbox = (smx_mailbox_t) xbt_dict_get_or_null(mailboxes, name); if (!mbox) { - mbox = xbt_new0(s_smx_mailbox_t, 1); + mbox = new s_smx_mailbox_t(); mbox->name = xbt_strdup(name); mbox->comm_queue = new std::deque(); mbox->done_comm_queue = nullptr; // Allocated on need only @@ -62,8 +66,7 @@ void SIMIX_mbox_free(void *data) xbt_free(mbox->name); delete mbox->comm_queue; delete mbox->done_comm_queue; - - xbt_free(mbox); + delete mbox; } smx_mailbox_t SIMIX_mbox_get_by_name(const char *name) @@ -198,7 +201,7 @@ XBT_PRIVATE smx_synchro_t simcall_HANDLER_comm_isend(smx_simcall_t simcall, smx_ if (mbox->permanent_receiver!=nullptr){ //this mailbox is for small messages, which have to be sent right now other_synchro->state = SIMIX_READY; - other_comm->dst_proc=mbox->permanent_receiver; + other_comm->dst_proc=mbox->permanent_receiver.get(); other_comm->ref(); mbox->done_comm_queue->push_back(other_synchro); other_comm->mbox=mbox; @@ -455,6 +458,8 @@ void simcall_HANDLER_comm_testany(smx_simcall_t simcall, xbt_dynar_t synchros) { unsigned int cursor; smx_synchro_t synchro; + // The default result is -1 -- this means, "nothing is ready". + // It can be changed below, but only if something matches. simcall_comm_testany__set__result(simcall, -1); if (MC_is_active() || MC_record_replay_is_active()){