Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[simix] Simplify simcalls.py
[simgrid.git] / src / simix / popping.cpp
index e4a621b..832686d 100644 (file)
@@ -24,7 +24,7 @@ void SIMIX_simcall_answer(smx_simcall_t simcall)
 {
   if (simcall->issuer != simix_global->maestro_process){
     XBT_DEBUG("Answer simcall %s (%d) issued by %s (%p)", SIMIX_simcall_name(simcall->call), (int)simcall->call,
-        simcall->issuer->name, simcall->issuer);
+        simcall->issuer->name.c_str(), simcall->issuer);
     simcall->issuer->simcall.call = SIMCALL_NONE;
 /*    This check should be useless and slows everyone. Reactivate if you see something
  *    weird in process scheduling.
@@ -37,35 +37,7 @@ void SIMIX_simcall_answer(smx_simcall_t simcall)
 
 void SIMIX_simcall_exit(smx_synchro_t synchro)
 {
-  simgrid::simix::Exec *exec = dynamic_cast<simgrid::simix::Exec*>(synchro);
-  if (exec != nullptr) {
-    SIMIX_post_host_execute(synchro);
-    return;
-  }
-
-  simgrid::simix::Comm *comm = dynamic_cast<simgrid::simix::Comm*>(synchro);
-  if (comm != nullptr) {
-    SIMIX_post_comm(synchro);
-    return;
-  }
-
-  simgrid::simix::Sleep *sleep = dynamic_cast<simgrid::simix::Sleep*>(synchro);
-  if (sleep != nullptr) {
-    SIMIX_post_process_sleep(synchro);
-    return;
-  }
-
-  simgrid::simix::Raw *raw = dynamic_cast<simgrid::simix::Raw*>(synchro);
-  if (raw != nullptr) {
-    SIMIX_post_synchro(synchro);
-    return;
-  }
-
-  simgrid::simix::Io *io = dynamic_cast<simgrid::simix::Io*>(synchro);
-  if (io != nullptr) {
-    SIMIX_post_io(synchro);
-    return;
-  }
+  synchro->post();
 }
 
 void SIMIX_run_kernel(void* code)