From: Samuel Lepetit Date: Thu, 28 Jun 2012 13:16:28 +0000 (+0200) Subject: Fix an issue in process autorestart X-Git-Tag: v3_8~421 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/8ba79039f7b59f05275e5964eff9fda48d46fec3 Fix an issue in process autorestart --- diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 1d41473a37..248eb91851 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -179,12 +179,7 @@ void _SIMIX_host_free_process_arg(void *); void _SIMIX_host_free_process_arg(void *data) { smx_process_arg_t arg = *(void**)data; - int i; xbt_free(arg->name); - for (i = 0; i < arg->argc; i++) { - xbt_free(arg->argv[i]); - } - xbt_free(arg->argv); xbt_free(arg); } /** @@ -208,14 +203,14 @@ void SIMIX_host_add_auto_restart_process(smx_host_t host, host->auto_restart_processes = xbt_dynar_new(sizeof(smx_process_arg_t),_SIMIX_host_free_process_arg); } smx_process_arg_t arg = xbt_new(s_smx_process_arg_t,1); - arg->name = xbt_strdup(name); arg->code = code; arg->data = data; arg->hostname = hostname; arg->kill_time = kill_time; arg->argc = argc; - arg->argv = xbt_new(char*,argc + 1); + + arg->argv = xbt_new(char*,argc); int i; for (i = 0; i < argc; i++) { diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index ceac7f0b87..ecd9e5005d 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -164,6 +164,7 @@ void SIMIX_process_stop(smx_process_t arg) { arg->argc,arg->argv,arg->properties, arg->auto_restart); } + XBT_DEBUG("Process %s (%s) is dead",arg->name,arg->smx_host->name); /* stop the context */ SIMIX_context_stop(arg->context); }