1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
#require "equeue";;
type event =
A of int
| B
let n = ref 1
let source esys =
if !n <= 10 then begin
Equeue.add_event esys (A !n);
incr n
end
let handler_a esys e =
match e with
A n ->
for i = 1 to n do
Equeue.add_event esys B;
done
| _ ->
raise Equeue.Reject
let handler_b esys e =
match e with
B ->
print_endline "B"
| _ ->
raise Equeue.Reject
;;
let esys = Equeue.create source in
Equeue.add_handler esys handler_a;
Equeue.add_handler esys handler_b;
Equeue.run esys
;;
|