Bladeren bron

trying to not wake all, but do independently

tarfeef101 6 jaren geleden
bovenliggende
commit
7bbd784093
1 gewijzigde bestanden met toevoegingen van 8 en 1 verwijderingen
  1. 8 1
      kern/synchprobs/traffic_synch.c

+ 8 - 1
kern/synchprobs/traffic_synch.c

@@ -120,7 +120,14 @@ static void clearint(car * done)
   
   if (temp->cv) // if this car was blocking something
   {
-    cv_broadcast(temp->cv, globlock); // wake all/inform them you're all good
+    //cv_broadcast(temp->cv, globlock); // wake all/inform them you're all good
+    //cv_destroy(temp->cv);
+    
+    while (!(wchan_is_empty(temp->cv->wc)))
+    {
+      cv_signal(temp->cv, globlock);
+    }
+    
     cv_destroy(temp->cv);
   }