Forráskód Böngészése

avoid recursive lock acquisition

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8425 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 6 éve
szülő
commit
96352b4276
1 módosított fájl, 5 hozzáadás és 2 törlés
  1. 5 2
      source/DiskFS.Mod

+ 5 - 2
source/DiskFS.Mod

@@ -933,7 +933,10 @@ TYPE
 			count := 0;
 			FOR i := 0 TO LEN(old)-1 DO
 				value := old[i];
-				IF value # 0 THEN Add(value) END;
+				IF value # 0 THEN
+					table[HashValue(value)] := value;
+					INC(count);
+				END;
 			END;
 		END Grow;
 		
@@ -949,7 +952,7 @@ TYPE
 			ASSERT((table[index] = 0) OR (table[index] = key));
 			RETURN index;
 		END HashValue;
-		
+
 		PROCEDURE Add(x: DiskAdr);
 		BEGIN {EXCLUSIVE}
 			ASSERT(x # 0);