surf_timer_model->extension.timer.set(start_time, (void *)
&SIMIX_process_create, arg);
- }
- if ((start_time < 0) || (start_time == SIMIX_get_clock())) {
+ } else { // start_time <= SIMIX_get_clock()
DEBUG2("Starting Process %s(%s) right now", parse_argv[0], parse_host);
if (simix_global->create_process_function)
else
process = SIMIX_process_create(parse_argv[0], parse_code, NULL, parse_host, parse_argc, parse_argv, /*the props */
current_property_set);
-
- if (process && kill_time > SIMIX_get_clock()) {
- if (simix_global->kill_process_function)
- surf_timer_model->extension.timer.set(start_time, (void *)
+ /* verify if process has been created */
+ if (!process) {
+ xbt_free(parse_host);
+ return;
+ }
+ if (kill_time > SIMIX_get_clock()) {
+ if (simix_global->kill_process_function)
+ surf_timer_model->extension.timer.set(start_time, (void *)
simix_global->kill_process_function,
process);
- else
- surf_timer_model->extension.timer.set(kill_time, (void *)
+ else
+ surf_timer_model->extension.timer.set(kill_time, (void *)
&SIMIX_process_kill,
(void *) process);
}
* \param name the reference name of the function.
* \param code the function
*/
-void SIMIX_function_register(const char *name, xbt_main_func_t code)
+XBT_INLINE void SIMIX_function_register(const char *name, xbt_main_func_t code)
{
xbt_assert0(simix_global,
"SIMIX_global_init has to be called before SIMIX_function_register.");