# HG changeset patch # User wenzelm # Date 1187283201 -7200 # Node ID af8dbc7a23052f311dffce2a1e812c33d6821fce # Parent edfe16773fd4229e0bff1b5b4cf5a78355f3c9f3 global state transformation: non-critical, but also non-thread-safe; diff -r edfe16773fd4 -r af8dbc7a2305 src/Pure/Isar/toplevel.ML --- a/src/Pure/Isar/toplevel.ML Thu Aug 16 11:45:07 2007 +0200 +++ b/src/Pure/Isar/toplevel.ML Thu Aug 16 18:53:21 2007 +0200 @@ -715,17 +715,17 @@ fun exn () = snd (! global_state); -(* apply transformers to global state *) +(* apply transformers to global state --- NOT THREAD-SAFE! *) nonfix >> >>>; -fun >> tr = NAMED_CRITICAL "toplevel" (fn () => +fun >> tr = (case apply true tr (get_state ()) of NONE => false | SOME (state', exn_info) => (global_state := (state', exn_info); print_exn exn_info; - true))); + true)); fun >>> [] = () | >>> (tr :: trs) = if >> tr then >>> trs else ();