X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7f4f03348bd07609e258eb3b545bdafc2c881847..0f12caebeefc7985a0586836248238e475258079:/src/simix/popping.cpp diff --git a/src/simix/popping.cpp b/src/simix/popping.cpp index eef1ea8f72..631bc80f22 100644 --- a/src/simix/popping.cpp +++ b/src/simix/popping.cpp @@ -7,10 +7,16 @@ #include "smx_private.h" #include "xbt/fifo.h" #include "xbt/xbt_os_thread.h" -#ifdef HAVE_MC +#if HAVE_MC #include "src/mc/mc_private.h" #endif +#include "src/simix/SynchroExec.hpp" +#include "src/simix/SynchroComm.hpp" +#include "src/simix/SynchroSleep.hpp" +#include "src/simix/SynchroRaw.hpp" +#include "src/simix/SynchroIo.hpp" + XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_popping, simix, "Popping part of SIMIX (transmuting from user request into kernel handlers)"); @@ -31,31 +37,11 @@ void SIMIX_simcall_answer(smx_simcall_t simcall) void SIMIX_simcall_exit(smx_synchro_t synchro) { - switch (synchro->type) { - - case SIMIX_SYNC_EXECUTE: - case SIMIX_SYNC_PARALLEL_EXECUTE: - SIMIX_post_host_execute(synchro); - break; - - case SIMIX_SYNC_COMMUNICATE: - SIMIX_post_comm(synchro); - break; - - case SIMIX_SYNC_SLEEP: - SIMIX_post_process_sleep(synchro); - break; - - case SIMIX_SYNC_JOIN: - SIMIX_post_process_sleep(synchro); - break; - - case SIMIX_SYNC_SYNCHRO: - SIMIX_post_synchro(synchro); - break; + synchro->post(); +} - case SIMIX_SYNC_IO: - SIMIX_post_io(synchro); - break; - } +void SIMIX_run_kernel(void* code) +{ + std::function* function = (std::function*) code; + (*function)(); }