Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Take into account "recent" simix modifications
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 20 Nov 2009 09:59:00 +0000 (09:59 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 20 Nov 2009 09:59:00 +0000 (09:59 +0000)
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

src/simix/smx_process.c

index b2ec5c1..46058f0 100644 (file)
@@ -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);
+      }
     }
   }
 }