X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/907ffb649d0e444a20162cb7696ad3523248f4b0..6307b7c124221f426fba288c5988d583ac27de70:/src/simix/smx_process.c diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index b2ec5c1262..46058f0181 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -170,12 +170,22 @@ void SIMIX_process_kill(smx_process_t process) if (process->mutex) xbt_swag_remove(process, process->mutex->sleeping); - if (process->cond) + if (process->cond) { xbt_swag_remove(process, process->cond->sleeping); - if (process->waiting_action) { - SIMIX_unregister_action_to_condition(process->waiting_action, process->cond); - SIMIX_action_destroy(process->waiting_action); + if (process->waiting_action) { + SIMIX_unregister_action_to_condition(process->waiting_action, process->cond); + SIMIX_action_destroy(process->waiting_action); + } + } + + if (process->sem) { + xbt_swag_remove(process, process->sem->sleeping); + + if (process->waiting_action) { + SIMIX_unregister_action_to_semaphore(process->waiting_action, process->sem); + SIMIX_action_destroy(process->waiting_action); + } } } }