edit_document: join parent execution in synchronous/uninterruptible mode, to prevent spurious interrupts when cascaded executions run into each other;
--- a/src/Pure/Isar/isar_document.ML Tue Jul 20 17:35:42 2010 +0200
+++ b/src/Pure/Isar/isar_document.ML Tue Jul 20 18:19:50 2010 +0200
@@ -242,7 +242,7 @@
val old_execution = ! execution;
val _ = Future.cancel old_execution;
val new_execution = Future.fork (fn () =>
- (Future.join_result old_execution;
+ (uninterruptible (K Future.join_result) old_execution;
fold_entries no_id (fn (_, {state, ...}) => fn () => force_state state) document ()));
in execution := new_execution end);