浏览代码

unregister the SD disk at the event of its ejection

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8431 8c9fc860-2736-0410-a75d-ab315db34111
eth.morozova 6 年之前
父节点
当前提交
b6c1be16a2
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      source/SdDisks.Mod

+ 4 - 0
source/SdDisks.Mod

@@ -226,6 +226,7 @@ TYPE
 					SdEnvironment.String("Removed disk ");
 					SdEnvironment.String("Removed disk ");
 					SdEnvironment.String(devices.name);
 					SdEnvironment.String(devices.name);
 					SdEnvironment.Ln;
 					SdEnvironment.Ln;
+					disk := devices;
 					devices := devices.next
 					devices := devices.next
 				ELSE
 				ELSE
 					disk := devices;
 					disk := devices;
@@ -240,6 +241,9 @@ TYPE
 					SdEnvironment.Ln;
 					SdEnvironment.Ln;
 					prev.next := disk.next
 					prev.next := disk.next
 				END;
 				END;
+				
+				disk.next := NIL;
+				Disks.registry.Remove(disk);
 		END
 		END
 	END HandleSdEvent;
 	END HandleSdEvent;