src/Tools/jEdit/patches/vfs_manager
author wenzelm
Sat, 30 Jul 2022 14:13:43 +0200
changeset 75732 14598eca6c20
parent 73653 d9823224fcfe
child 81297 07f64697408e
permissions -rw-r--r--
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
73653
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     1
diff -ru jedit5.6.0/jEdit/org/gjt/sp/jedit/io/VFSManager.java jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/io/VFSManager.java
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     2
--- jedit5.6.0/jEdit/org/gjt/sp/jedit/io/VFSManager.java	2020-09-03 05:31:03.000000000 +0200
d9823224fcfe build auxiliary jEdit component in Isabelle/Scala;
wenzelm
parents: 72247
diff changeset
     3
+++ jedit5.6.0-patched/jEdit/org/gjt/sp/jedit/io/VFSManager.java	2021-05-10 11:02:05.808257746 +0200
71932
65fd0f032a75 updated to jedit-5.6pre1 (repository version 25349);
wenzelm
parents: 69838
diff changeset
     4
@@ -380,6 +380,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