#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
;;