X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/831de10adaaf8910940aa280e2ac2dd075b5ffe5..f1e469ce075c0a1ad21a7fd0fdb587f9a3cb5289:/src/kernel/activity/SynchroComm.cpp diff --git a/src/kernel/activity/SynchroComm.cpp b/src/kernel/activity/SynchroComm.cpp index a0058b1c90..f8969b7c98 100644 --- a/src/kernel/activity/SynchroComm.cpp +++ b/src/kernel/activity/SynchroComm.cpp @@ -11,16 +11,16 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_network); -simgrid::simix::Comm::Comm(e_smx_comm_type_t _type) { +simgrid::kernel::activity::Comm::Comm(e_smx_comm_type_t _type) : type(_type) +{ state = SIMIX_WAITING; - this->type = _type; src_data=nullptr; dst_data=nullptr; XBT_DEBUG("Create communicate synchro %p", this); } -simgrid::simix::Comm::~Comm() +simgrid::kernel::activity::Comm::~Comm() { XBT_DEBUG("Really free communication %p", this); @@ -35,10 +35,9 @@ simgrid::simix::Comm::~Comm() } if(mbox) - SIMIX_mbox_remove(mbox, this); - + mbox->remove(this); } -void simgrid::simix::Comm::suspend() +void simgrid::kernel::activity::Comm::suspend() { /* FIXME: shall we suspend also the timeout synchro? */ if (surf_comm) @@ -47,7 +46,7 @@ void simgrid::simix::Comm::suspend() } -void simgrid::simix::Comm::resume() +void simgrid::kernel::activity::Comm::resume() { /*FIXME: check what happen with the timeouts */ if (surf_comm) @@ -55,12 +54,12 @@ void simgrid::simix::Comm::resume() /* in the other case, the synchro were not really suspended yet, see SIMIX_comm_suspend() and SIMIX_comm_start() */ } -void simgrid::simix::Comm::cancel() +void simgrid::kernel::activity::Comm::cancel() { /* if the synchro is a waiting state means that it is still in a mbox */ /* so remove from it and delete it */ if (state == SIMIX_WAITING) { - SIMIX_mbox_remove(mbox, this); + mbox->remove(this); state = SIMIX_CANCELED; } else if (!MC_is_active() /* when running the MC there are no surf actions */ @@ -72,27 +71,17 @@ void simgrid::simix::Comm::cancel() } /** @brief get the amount remaining from the communication */ -double simgrid::simix::Comm::remains() +double simgrid::kernel::activity::Comm::remains() { - switch (state) { - - case SIMIX_RUNNING: + if (state == SIMIX_RUNNING) return surf_comm->getRemains(); - break; - case SIMIX_WAITING: - case SIMIX_READY: - return 0; /*FIXME: check what should be returned */ - break; - - default: - return 0; /*FIXME: is this correct? */ - break; - } + /* FIXME: check what should be returned in the other cases */ + return 0; } /** @brief This is part of the cleanup process, probably an internal command */ -void simgrid::simix::Comm::cleanupSurf() +void simgrid::kernel::activity::Comm::cleanupSurf() { if (surf_comm){ surf_comm->unref(); @@ -110,7 +99,7 @@ void simgrid::simix::Comm::cleanupSurf() } } -void simgrid::simix::Comm::post() +void simgrid::kernel::activity::Comm::post() { /* Update synchro state */ if (src_timeout && src_timeout->getState() == simgrid::surf::Action::State::done)