X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a6c262a93734a964f6aaaddf59d933398db660ff..986fb5fef4507d37b47b9ff8ee5ba5c26e8a5cee:/src/simix/smx_process.c diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index f6bc39dc2f..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) { @@ -529,3 +528,10 @@ void SIMIX_process_exception_terminate(xbt_ex_t * e) xbt_ex_display(e); abort(); } + +smx_context_t SIMIX_process_get_context(smx_process_t p) { + return p->context; +} +void SIMIX_process_set_context(smx_process_t p,smx_context_t c) { + p->context = c; +}