X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/802ce8090d999864f8b55f6c2e19ac4fe0805ff3..612a491138746843a9fe0df8551e6ccf6ea2cf27:/communicator.cpp?ds=sidebyside diff --git a/communicator.cpp b/communicator.cpp index 7abdf76..2df6d76 100644 --- a/communicator.cpp +++ b/communicator.cpp @@ -1,12 +1,10 @@ #include -#include -#include +#include #include XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(comm); #include "misc.h" -#include "simgrid_features.h" #include "tracing.h" #include "communicator.h" @@ -24,15 +22,13 @@ namespace { communicator::communicator() : host(static_cast(MSG_host_get_data(MSG_host_self()))) { - using std::tr1::bind; - receiver_thread = new_msg_thread("receiver", - bind(&communicator::receiver, this)); + receiver_thread = new_msg_thread("receiver", [this]() { this->receiver(); }); receiver_thread->start(); } communicator::~communicator() { - m_task_t task; + msg_task_t task; XBT_DEBUG("send finalize to receiver/ctrl"); task = MSG_task_create("finalize", 0.0, 0, NULL); @@ -54,18 +50,18 @@ communicator::~communicator() msg_comm_t communicator::real_send(const char* dest, message* msg) { XBT_DEBUG("send %s to %s", msg->to_string().c_str(), dest); - m_task_t task = MSG_task_create("message", 0.0, msg->get_size(), msg); - TRACE_msg_set_task_category(task, - msg->get_type() == message::LOAD ? - TRACE_CAT_DATA : TRACE_CAT_CTRL); + msg_task_t task = MSG_task_create("message", 0.0, msg->get_size(), msg); + // MSG_task_set_category(task, + // msg->get_type() == message::DATA ? + // TRACE_CAT_DATA : TRACE_CAT_CTRL); return MSG_task_isend(task, dest); } void communicator::real_flush(sent_comm_type& sent_comm, bool wait) { - sent_comm_type::iterator bound; - bound = std::remove_if(sent_comm.begin(), sent_comm.end(), - comm_test_n_destroy); + sent_comm_type::iterator bound = + std::remove_if(sent_comm.begin(), sent_comm.end(), + comm_test_n_destroy); sent_comm.erase(bound, sent_comm.end()); if (wait && !sent_comm.empty()) { size_t size = sent_comm.size(); @@ -73,8 +69,7 @@ void communicator::real_flush(sent_comm_type& sent_comm, bool wait) std::copy(sent_comm.begin(), sent_comm.end(), comms); sent_comm.clear(); MSG_comm_waitall(comms, size, -1.0); - if (!MSG_WAIT_DESTROYS_COMMS) - std::for_each(comms, comms + size, comm_check_n_destroy); + std::for_each(comms, comms + size, comm_check_n_destroy); delete[] comms; } } @@ -84,7 +79,7 @@ void communicator::receiver() xbt_dynar_t comms = xbt_dynar_new(sizeof(msg_comm_t), NULL); struct channel { msg_comm_t comm; - m_task_t task; + msg_task_t task; const char* mbox; message_queue& received; };