+++ /dev/null
-(* $Id$ *)
-
-open GtkMain
-
-(* We check first whether there are some event pending, and run
- some iterations. We then need to delay, thus focing a thread switch. *)
-
-let main () =
- try
- let loop = (Glib.Main.create true) in
- Main.loops := loop :: !Main.loops;
- while Glib.Main.is_running loop do
- let i = ref 0 in
- while !i < 100 && Glib.Main.pending () do
- Glib.Main.iteration true;
- incr i
- done;
- Thread.delay 0.001
- done;
- Main.loops := List.tl !Main.loops
- with exn ->
- Main.loops := List.tl !Main.loops;
- raise exn
-
-let start = Thread.create main
-
-let _ =
- let mutex = Mutex.create () in
- let depth = ref 0 in
- GtkSignal.enter_callback :=
- (fun () -> if !depth = 0 then Mutex.lock mutex; incr depth);
- GtkSignal.exit_callback :=
- (fun () -> decr depth; if !depth = 0 then Mutex.unlock mutex)