From: mquinson Date: Fri, 3 Dec 2010 00:23:46 +0000 (+0000) Subject: move iwannadie from processes to contextes back X-Git-Tag: v3.6_beta2~952 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/986fb5fef4507d37b47b9ff8ee5ba5c26e8a5cee move iwannadie from processes to contextes back git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8970 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/include/simix/context.h b/include/simix/context.h index 1a10dc34cb..7b2c796c31 100644 --- a/include/simix/context.h +++ b/include/simix/context.h @@ -72,6 +72,7 @@ typedef struct s_smx_context { int argc; char **argv; void_pfn_smxprocess_t cleanup_func; + int iwannadie:1; void *data; /* Here SIMIX stores the smx_process_t containing the context */ } s_smx_ctx_base_t; diff --git a/src/simix/process_private.h b/src/simix/process_private.h index 35d5797143..ad98fa49d0 100644 --- a/src/simix/process_private.h +++ b/src/simix/process_private.h @@ -27,7 +27,6 @@ typedef struct s_smx_process { int doexception:1; int blocked:1; int suspended:1; - int iwannadie:1; smx_action_t waiting_action; xbt_dict_t properties; smx_req_t request; diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index 1c06a6cbcc..ee203f4dd3 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -153,7 +153,6 @@ smx_process_t SIMIX_process_create(const char *name, process->pid = simix_process_count++; process->name = xbt_strdup(name); process->smx_host = host; - process->iwannadie = 0; process->data = data; VERB1("Create context %s", process->name); @@ -192,7 +191,7 @@ void SIMIX_process_kill(smx_process_t process, smx_process_t killer) { DEBUG2("Killing process %s on %s", process->name, process->smx_host->name); - process->iwannadie = 1; + process->context->iwannadie = 1; process->blocked = 0; process->suspended = 0; /* FIXME: set doexception to 0 also? */ @@ -507,7 +506,7 @@ void SIMIX_process_yield(void) /* Ok, maestro returned control to us */ DEBUG1("Maestro returned control to me: '%s'", self->name); - if (self->iwannadie) + if (self->context->iwannadie) SIMIX_context_stop(self->context); if (self->doexception) {