X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ee9f004ac482ef560ec71cbcc42663bd81185a27..934f086b51d328c46cb8fb20db2ad3efd4668ac9:/src/mc/ModelChecker.cpp diff --git a/src/mc/ModelChecker.cpp b/src/mc/ModelChecker.cpp index 5b517e5324..9dbc7412bf 100644 --- a/src/mc/ModelChecker.cpp +++ b/src/mc/ModelChecker.cpp @@ -318,6 +318,10 @@ Transition* ModelChecker::handle_simcall(aid_t aid, int times_considered, bool n m.times_considered_ = times_considered; checker_side_.get_channel().send(m); + this->remote_process_->clear_cache(); + if (this->remote_process_->running()) + checker_side_.dispatch(); // The app may send messages while processing the transition + s_mc_message_simcall_execute_answer_t answer; ssize_t s = checker_side_.get_channel().receive(answer); xbt_assert(s != -1, "Could not receive message"); @@ -327,12 +331,8 @@ Transition* ModelChecker::handle_simcall(aid_t aid, int times_considered, bool n to_c_str(answer.type), (int)answer.type, (int)s, (int)MessageType::SIMCALL_EXECUTE_ANSWER, (int)sizeof(answer)); - this->remote_process_->clear_cache(); - if (this->remote_process_->running()) - checker_side_.dispatch(); // The app may send messages while processing the transition - if (new_transition) { - std::stringstream stream(answer.buffer); + std::stringstream stream(answer.buffer.data()); return deserialize_transition(aid, times_considered, stream); } else return nullptr;