X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b5e771f630cc0d48cbf5da8afb43f971cfaa36b1..9692d43fa911bdc2d6d0263a3cb3e22d5e3167fe:/src/mc/Client.cpp diff --git a/src/mc/Client.cpp b/src/mc/Client.cpp index c05696f5d1..7d326ff873 100644 --- a/src/mc/Client.cpp +++ b/src/mc/Client.cpp @@ -16,6 +16,8 @@ #include #include +#include + #include "src/internal_config.h" #include "src/mc/mc_protocol.h" @@ -44,10 +46,7 @@ Client* Client::initialize() if (client_) return client_.get(); - // Check and set the mode: - if (mc_mode != MC_MODE_NONE) - abort(); - mc_mode = MC_MODE_CLIENT; + _sg_do_model_check = 1; // Fetch socket from MC_ENV_SOCKET_FD: char* fd_env = std::getenv(MC_ENV_SOCKET_FD); @@ -96,7 +95,7 @@ void Client::handleMessages() { // Check deadlock: bool deadlock = false; - smx_process_t process; + smx_actor_t process; if (xbt_swag_size(simix_global->process_list)) { deadlock = true; xbt_swag_foreach(process, simix_global->process_list) @@ -124,7 +123,7 @@ void Client::handleMessages() if (s != sizeof(message)) xbt_die("Unexpected size for SIMCALL_HANDLE"); memcpy(&message, message_buffer, sizeof(message)); - smx_process_t process = SIMIX_process_from_PID(message.pid); + smx_actor_t process = SIMIX_process_from_PID(message.pid); if (!process) xbt_die("Invalid pid %lu", (unsigned long) message.pid); SIMIX_simcall_handle(&process->simcall, message.value); @@ -139,13 +138,14 @@ void Client::handleMessages() if (s != sizeof(message)) xbt_die("Unexpected size for SIMCALL_HANDLE"); memcpy(&message, message_buffer, sizeof(message)); +#if HAVE_SMPI smpi_really_switch_data_segment(message.index); +#endif } break; default: - xbt_die("%s received unexpected message %s (%i)", - MC_mode_name(mc_mode), + xbt_die("Received unexpected message %s (%i)", MC_message_type_name(message.type), message.type ); @@ -228,7 +228,7 @@ void Client::declareSymbol(const char *name, int* value) xbt_die("Could send REGISTER_SYMBOL message to model-checker"); } -void Client::declareStack(void *stack, size_t size, smx_process_t process, ucontext_t* context) +void Client::declareStack(void *stack, size_t size, smx_actor_t process, ucontext_t* context) { xbt_mheap_t heap = mmalloc_get_current_heap();