avoid interrupts of read loop;
authorwenzelm
Sat, 25 Sep 1999 13:17:38 +0200
changeset 7602 2c0f407f80ce
parent 7601 c568799bf21b
child 7603 b2b5599b934f
avoid interrupts of read loop;
src/Pure/Isar/toplevel.ML
--- a/src/Pure/Isar/toplevel.ML	Sat Sep 25 13:08:54 1999 +0200
+++ b/src/Pure/Isar/toplevel.ML	Sat Sep 25 13:17:38 1999 +0200
@@ -441,14 +441,6 @@
       Position.T * (Symbol.symbol, (string, unit) Source.source) Source.source)
           Source.source) Source.source) Source.source) Source.source;
 
-fun transform_interrupt_isar f x =
-  let val y = ref (None: (transition * isar) option option);
-  in exhibit_interrupt (fn () => y := Some (f x)) (); the (! y) end;
-
-fun get_interruptible src =
-  Some (transform_interrupt_isar Source.get_single src)
-    handle Interrupt => None;
-
 
 (* apply transformers to global state *)
 
@@ -462,8 +454,12 @@
         check_stale state'; print_exn exn_info;
         true));
 
+(*Note: this is for Poly/ML only, we really do not intend to exhibit
+  interrupts here*)
+fun get_interrupt src = Some (Source.get_single src) handle Interrupt => None;
+
 fun raw_loop src =
-  (case get_interruptible (Source.set_prompt (prompt_state (get_state ())) src) of
+  (case get_interrupt (Source.set_prompt (prompt_state (get_state ())) src) of
     None => (writeln "\nInterrupt."; raw_loop src)
   | Some None => ()
   | Some (Some (tr, src')) => if >> tr then raw_loop src' else ());