浏览代码

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 年之前
父节点
当前提交
96352b4276
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      source/DiskFS.Mod

+ 5 - 2
source/DiskFS.Mod

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