Namely, the use of semaphores for communications in SIMIX_process
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6846
48e7efb5-ca39-0410-a469-
dd3cf9ba447f
if (process->mutex)
xbt_swag_remove(process, process->mutex->sleeping);
if (process->mutex)
xbt_swag_remove(process, process->mutex->sleeping);
xbt_swag_remove(process, process->cond->sleeping);
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);
+ }