src/Tools/jEdit/patches/vfs_manager
author paulson <lp15@cam.ac.uk>
Fri, 04 Jul 2025 15:08:09 +0100
changeset 82803 982e7128ce0f
parent 81297 07f64697408e
permissions -rw-r--r--
Two lemmas and a comment
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
81297
07f64697408e update to jedit5.7.0;
wenzelm
parents: 73653
diff changeset
     1
diff -ru jedit5.7.0/jEdit/org/gjt/sp/jedit/io/VFSManager.java jedit5.7.0-patched/jEdit/org/gjt/sp/jedit/io/VFSManager.java
07f64697408e update to jedit5.7.0;
wenzelm
parents: 73653
diff changeset
     2
--- jedit5.7.0/jEdit/org/gjt/sp/jedit/io/VFSManager.java	2024-08-03 19:53:14.000000000 +0200
07f64697408e update to jedit5.7.0;
wenzelm
parents: 73653
diff changeset
     3
+++ jedit5.7.0-patched/jEdit/org/gjt/sp/jedit/io/VFSManager.java	2024-10-29 11:50:54.062016616 +0100
07f64697408e update to jedit5.7.0;
wenzelm
parents: 73653
diff changeset
     4
@@ -339,6 +339,18 @@
69696
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
     5
 
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
     6
 				if(vfsUpdates.size() == 1)
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
     7
 				{
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
     8
+					// slowdown race concerning Buffer.isLoading() status
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
     9
+					// of Buffer.save() + Buffer.finishSaving()
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    10
+					// versus Buffer.load() + "runnable"
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    11
+					try
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    12
+					{
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    13
+						Thread.sleep(100);
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    14
+					}
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    15
+					catch(InterruptedException ie)
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    16
+					{
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    17
+						Thread.currentThread().interrupt();
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    18
+					}
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    19
+
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    20
 					// we were the first to add an update;
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    21
 					// add update sending runnable to AWT
9fd395ff57bc avoid crash of jEdit.closeBuffer() via TaskManager.instance.waitForIoTasks() due to race condition of save() vs. automatic load() of already open buffer, e.g. relevant for save-as on "isabelle-export:" artifacts;
wenzelm
parents:
diff changeset
    22
 					// thread