(*factory)->suspend = NULL;
(*factory)->runall = NULL;
(*factory)->self = smx_ctx_base_self;
- (*factory)->get_data = smx_ctx_base_get_data;
+ (*factory)->get_process = smx_ctx_base_get_process;
(*factory)->name = "base context factory";
}
}
smx_context_t
-smx_ctx_base_factory_create_context_sized(size_t size,
- xbt_main_func_t code, int argc,
- char **argv,
+smx_ctx_base_factory_create_context_sized(size_t size, xbt_main_func_t code,
+ int argc, char **argv,
void_pfn_smxprocess_t cleanup_func,
- void *data)
+ smx_process_t process)
{
smx_context_t context = xbt_malloc0(size);
} else {
SIMIX_context_set_current(context);
}
- context->data = data;
+ context->process = process;
return context;
}
void smx_ctx_base_stop(smx_context_t context)
{
if (context->cleanup_func)
- context->cleanup_func(context->data);
+ context->cleanup_func(context->process);
+ context->process->suspended = 0;
context->iwannadie = 0;
- simcall_process_cleanup(context->data);
+ simcall_process_cleanup(context->process);
context->iwannadie = 1;
}
return SIMIX_context_get_current();
}
-void *smx_ctx_base_get_data(smx_context_t context)
+smx_process_t smx_ctx_base_get_process(smx_context_t context)
{
- return context->data;
+ return context->process;
}