X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/78f2b1a0a46589cd083afd39fb84a90c4c043288..001a723e0c10af5facba4f0bb5de625bc3da00e1:/src/simix/smx_process.cpp diff --git a/src/simix/smx_process.cpp b/src/simix/smx_process.cpp index 9c2273f863..0effb83035 100644 --- a/src/simix/smx_process.cpp +++ b/src/simix/smx_process.cpp @@ -156,7 +156,7 @@ void create_maestro(std::function code) XBT_RUNNING_CTX_INITIALIZE(maestro->running_ctx); if (!code) { - maestro->context = SIMIX_context_new(NULL, 0, nullptr, NULL, maestro); + maestro->context = SIMIX_context_new(std::function(), NULL, maestro); } else { if (!simix_global) xbt_die("simix is not initialized, please call MSG_init first"); @@ -201,29 +201,6 @@ void SIMIX_process_stop(smx_process_t arg) { arg->context->stop(); } -/** - * \brief Same as SIMIX_process_create() but with only one argument (used by timers). - * This function frees the argument. - * \return the process created - */ -smx_process_t SIMIX_process_create_from_wrapper(smx_process_arg_t args) { - - smx_process_t process = simix_global->create_process_function( - args->name, - args->code, - args->data, - args->hostname, - args->kill_time, - args->argc, - args->argv, - args->properties, - args->auto_restart, - NULL); - xbt_free(args); - return process; -} - - void* simcall_HANDLER_process_create(smx_simcall_t simcall, const char *name, xbt_main_func_t code, @@ -315,7 +292,9 @@ smx_process_t SIMIX_process_create( XBT_VERB("Create context %s", process->name); - process->context = SIMIX_context_new(code, argc, argv, simix_global->cleanup_process_function, process); + process->context = SIMIX_context_new( + simgrid::simix::wrap_main(code, argc, argv), + simix_global->cleanup_process_function, process); process->running_ctx = (xbt_running_ctx_t*) xbt_malloc0(sizeof(xbt_running_ctx_t)); XBT_RUNNING_CTX_INITIALIZE(process->running_ctx); @@ -1012,7 +991,7 @@ smx_process_t SIMIX_process_restart(smx_process_t process, smx_process_t issuer) XBT_DEBUG("Restarting process %s on %s", process->name, sg_host_get_name(process->host)); //retrieve the arguments of the old process //FIXME: Factorize this with SIMIX_host_add_auto_restart_process ? - s_smx_process_arg_t arg; + simgrid::simix::ProcessArg arg; arg.code = process->code; arg.hostname = sg_host_get_name(process->host); arg.kill_time = SIMIX_timer_get_date(process->kill_timer);