/**
* \brief Makes the current process do a simcall to the kernel and yields
- * until completion.
+ * until completion. If the current thread is maestro, we don't yield and
+ * execute the simcall directly.
* \param self the current process
*/
void SIMIX_simcall_push(smx_process_t self)
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->simcall.call = SIMCALL_NONE;
+/* This check should be useless and slows everyone. Reactivate if you see something
+ * weird in process scheduling.
+ */
+/* if(!xbt_dynar_member(simix_global->process_to_run, &(simcall->issuer))) */
xbt_dynar_push_as(simix_global->process_to_run, smx_process_t, simcall->issuer);
+/* else DIE_IMPOSSIBLE; */
}
}
simcall->process_create.code,
simcall->process_create.data,
simcall->process_create.hostname,
+ simcall->process_create.kill_time,
simcall->process_create.argc,
simcall->process_create.argv,
simcall->process_create.properties);