]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matitaGui.ml
more new objects for the LambdaDelta contribution
[helm.git] / matita / matitaGui.ml
index 2a607d9fcf0cac59bf7a538d90b82c8239700952..19251f0744b4467e32f403a38b7b747986959f83 100644 (file)
@@ -422,7 +422,9 @@ class gui () =
         main#buttonsToolbar#misc#set_sensitive true;
         develList#buttonsHbox#misc#set_sensitive true;
         main#scriptMenu#misc#set_sensitive true;
-        source_view#set_editable true
+        source_view#set_editable true;
+        (*The next line seems sufficient to avoid some unknown race condition *)
+        GtkThread.sync (fun () -> ()) ()
       in
       let worker_thread = ref None in
       let notify_exn exn =
@@ -463,8 +465,8 @@ class gui () =
            f ();
            unlock_world ()
           with exc ->
-           unlock_world ();
-           notify_exn exc
+           notify_exn exc;
+           unlock_world ()
        in
         worker_thread := Some (Thread.create thread_main ()) in
       let kill_worker =