From: Gabriel Corona Date: Tue, 10 Nov 2015 13:58:02 +0000 (+0100) Subject: [mc] Simplify mc_server X-Git-Tag: v3_13~1582^2~9 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/3d60b8fbe053cd87f2e0491f0d255e07df912eaf [mc] Simplify mc_server --- diff --git a/src/mc/mc_base.cpp b/src/mc/mc_base.cpp index ea5b647c3d..3ca646c717 100644 --- a/src/mc/mc_base.cpp +++ b/src/mc/mc_base.cpp @@ -43,7 +43,7 @@ void MC_wait_for_requests(void) { #ifdef HAVE_MC if (mc_mode == MC_MODE_SERVER) { - MC_server_wait_client(&mc_model_checker->process()); + mc_server->wait_client(mc_model_checker->process()); return; } #endif @@ -233,7 +233,8 @@ void MC_simcall_handle(smx_simcall_t req, int value) xbt_dynar_foreach_ptr(mc_model_checker->process().smx_process_infos, i, pi) { if (req == &pi->copy.simcall) { - MC_server_simcall_handle(&mc_model_checker->process(), pi->copy.pid, value); + mc_server->simcall_handle( + mc_model_checker->process(), pi->copy.pid, value); return; } } diff --git a/src/mc/mc_server.cpp b/src/mc/mc_server.cpp index 92769072e3..db325d2b4d 100644 --- a/src/mc/mc_server.cpp +++ b/src/mc/mc_server.cpp @@ -117,12 +117,12 @@ void s_mc_server::exit() } } -void s_mc_server::resume(simgrid::mc::Process* process) +void s_mc_server::resume(simgrid::mc::Process& process) { - int res = process->send_message(MC_MESSAGE_CONTINUE); + int res = process.send_message(MC_MESSAGE_CONTINUE); if (res) throw std::system_error(res, std::system_category()); - process->cache_flags = (mc_process_cache_flags_t) 0; + process.cache_flags = (mc_process_cache_flags_t) 0; } static @@ -356,33 +356,28 @@ void s_mc_server::on_signal(const struct signalfd_siginfo* info) } } -void MC_server_wait_client(simgrid::mc::Process* process) +void s_mc_server::wait_client(simgrid::mc::Process& process) { - mc_server->resume(process); + this->resume(process); while (mc_model_checker->process().running()) { if (!mc_server->handle_events()) return; } } -void MC_server_simcall_handle(simgrid::mc::Process* process, unsigned long pid, int value) +void s_mc_server::simcall_handle(simgrid::mc::Process& process, unsigned long pid, int value) { s_mc_simcall_handle_message m; memset(&m, 0, sizeof(m)); m.type = MC_MESSAGE_SIMCALL_HANDLE; m.pid = pid; m.value = value; - mc_model_checker->process().send_message(m); - process->cache_flags = (mc_process_cache_flags_t) 0; - while (mc_model_checker->process().running()) { + process.send_message(m); + process.cache_flags = (mc_process_cache_flags_t) 0; + while (process.running()) { if (!mc_server->handle_events()) return; } } -void MC_server_loop(mc_server_t server) -{ - server->loop(); -} - } diff --git a/src/mc/mc_server.h b/src/mc/mc_server.h index 1358a2f331..9daf0dd66e 100644 --- a/src/mc/mc_server.h +++ b/src/mc/mc_server.h @@ -28,11 +28,6 @@ typedef struct s_mc_server s_mc_server_t, *mc_server_t; extern mc_server_t mc_server; -XBT_PRIVATE void MC_server_wait_client(simgrid::mc::Process* process); -XBT_PRIVATE void MC_server_simcall_handle(simgrid::mc::Process* process, unsigned long pid, int value); - -XBT_PRIVATE void MC_server_loop(mc_server_t server); - SG_END_DECL() #ifdef __cplusplus @@ -47,9 +42,11 @@ public: void start(); void shutdown(); void exit(); - void resume(simgrid::mc::Process* process); + void resume(simgrid::mc::Process& process); void loop(); bool handle_events(); + void wait_client(simgrid::mc::Process& process); + void simcall_handle(simgrid::mc::Process& process, unsigned long pid, int value); private: bool handle_message(char* buffer, ssize_t size); void handle_signals();