package oxbow
Source file schedule.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20let send = ref (fun () -> ()) let requested = ref false let in_tick = ref false let install f = send := f let manage () = if not !requested then ( requested := true; if not !in_tick then !send ()) ;; let with_tick f = assert (not !in_tick); requested := false; in_tick := true; Fun.protect f ~finally:(fun () -> in_tick := false; if !requested then !send ()) ;;