diff options
author | buisson | 2005-04-29 09:35:43 +0000 |
---|---|---|
committer | buisson | 2005-04-29 09:35:43 +0000 |
commit | 22c1e6dbe7cf74936e5ca29eadeff81312ccc506 (patch) | |
tree | 3304815b956eb5c76674fa2763d3da8a2e73394f /ivyLoop.ml | |
parent | 23abb4b87c7e40ed259dd02f653516f60e55ade4 (diff) | |
download | ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.zip ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.gz ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.bz2 ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.xz |
Initial revision
Diffstat (limited to 'ivyLoop.ml')
-rw-r--r-- | ivyLoop.ml | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ivyLoop.ml b/ivyLoop.ml new file mode 100644 index 0000000..5808de4 --- /dev/null +++ b/ivyLoop.ml @@ -0,0 +1,22 @@ +type channel +type delete_channel_cb = unit -> unit +type timer +type timer_cb = timer -> unit + +external ext_timer : int -> int -> string -> timer = "ivy_timerRepeatafter" + +let timer = fun n t cb -> + let closure_name = Ivy.cb_register cb in + ext_timer n t closure_name + +external remove_timer : timer -> unit = "ivy_timerRemove" + +external main : unit -> unit = "ivy_mainLoop" + +external ext_channelSetUp : Unix.file_descr -> string -> channel = "ivy_channelSetUp" +external close_channel : channel -> unit = "ivy_channelClose" + + +type read_channel_cb = channel -> unit +let set_up_channel fd delete read = + ext_channelSetUp fd (Ivy.cb_register read) |