src/Pure/Isar/toplevel.ML
changeset 56147 9589605bcf41
parent 56057 ad6bd8030d88
child 56265 785569927666
--- a/src/Pure/Isar/toplevel.ML	Fri Mar 14 15:41:29 2014 +0100
+++ b/src/Pure/Isar/toplevel.ML	Fri Mar 14 16:54:01 2014 +0100
@@ -590,11 +590,12 @@
 (* post-transition hooks *)
 
 local
-  val hooks = Unsynchronized.ref ([]: (transition -> state -> state -> unit) list);
+  val hooks =
+    Synchronized.var "Toplevel.hooks" ([]: (transition -> state -> state -> unit) list);
 in
 
-fun add_hook f = CRITICAL (fn () => Unsynchronized.change hooks (cons f));
-fun get_hooks () = ! hooks;
+fun add_hook hook = Synchronized.change hooks (cons hook);
+fun get_hooks () = Synchronized.value hooks;
 
 end;