X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/afd307b9711af19f9053bad1aec0b8e60c3ea467..404a8d5b50296756e0896c1914750fa235720946:/communicator.cpp diff --git a/communicator.cpp b/communicator.cpp index 94cdb04..753b04a 100644 --- a/communicator.cpp +++ b/communicator.cpp @@ -21,13 +21,10 @@ std::string message::to_string() return oss.str(); } -const int communicator::send_count_before_flush = 4; - communicator::communicator() : host((hostdata* )MSG_host_get_data(MSG_host_self())) , mutex(xbt_mutex_init()) , cond(xbt_cond_init()) - , send_counter(0) , ctrl_task(NULL) , ctrl_comm(NULL) , data_task(NULL) @@ -52,10 +49,11 @@ communicator::~communicator() task = MSG_task_create("finalize", 0.0, 0, NULL); MSG_task_send(task, get_data_mbox()); - DEBUG0("wait for receiver to terminate"); xbt_mutex_acquire(mutex); - while (receiver_process) + while (receiver_process) { + DEBUG0("waiting for receiver to terminate"); xbt_cond_wait(cond, mutex); + } xbt_mutex_release(mutex); if (ctrl_comm) @@ -82,20 +80,16 @@ void communicator::send(const char* dest, message* msg) m_task_t task = MSG_task_create("message", 0.0, msg_size, msg); msg_comm_t comm = MSG_task_isend(task, dest); sent_comm.push_back(comm); - - if (++send_counter >= send_count_before_flush) { - flush(false); - send_counter = 0; - } } bool communicator::recv(message*& msg, m_host_t& from, bool wait) { if (wait) { - DEBUG0("suspend main process on recv"); xbt_mutex_acquire(mutex); - while (received.empty()) + while (received.empty()) { + DEBUG0("waiting for a message to come"); xbt_cond_wait(cond, mutex); + } xbt_mutex_release(mutex); }