author | paulson <lp15@cam.ac.uk> |
Fri, 04 Jul 2025 15:08:09 +0100 | |
changeset 82803 | 982e7128ce0f |
parent 81297 | 07f64697408e |
permissions | -rw-r--r-- |
81297 | 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 |
2 |
--- jedit5.7.0/jEdit/org/gjt/sp/jedit/io/VFSManager.java 2024-08-03 19:53:14.000000000 +0200 |
|
3 |
+++ jedit5.7.0-patched/jEdit/org/gjt/sp/jedit/io/VFSManager.java 2024-10-29 11:50:54.062016616 +0100 |
|
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 |