Просмотр исходного кода

Await() checks if it is called in an exclusive block

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7539 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter 7 лет назад
Родитель
Сommit
6d50bdb908
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      source/Generic.Unix.Objects.Mod

+ 3 - 1
source/Generic.Unix.Objects.Mod

@@ -427,7 +427,9 @@ TYPE
 		lock := S.VAL(LockT, hdr.lock);
 		IF hdr.awaitingCond.head # NIL THEN  c := FindCondition( hdr.awaitingCond )  END;
 		
-		p := CurrentProcess();  p.succ := NIL;  p.condition := cond;  p.condFP := slink;   
+		p := CurrentProcess();  
+		ASSERT( hdr.lockedBy = p, 2204 ); 
+		p.succ := NIL;  p.condition := cond;  p.condFP := slink;   
 		p.waitingOn := obj;  p.mode := AwaitingCond;
 		
 		Put( hdr.awaitingCond, p );