aboutsummaryrefslogtreecommitdiff
path: root/trunk/ivyLoop.ml
diff options
context:
space:
mode:
authorhattenberger2013-03-27 13:17:19 +0000
committerhattenberger2013-03-27 13:17:19 +0000
commita17272283c803e13258e5dc6b19533c672ceee18 (patch)
tree0fa7737e21fe1147c860a84b18676cd99a80fdb1 /trunk/ivyLoop.ml
parent003d66dc1fabc063372e4f03265935d0ccaefd78 (diff)
downloadivy-ocaml-a17272283c803e13258e5dc6b19533c672ceee18.zip
ivy-ocaml-a17272283c803e13258e5dc6b19533c672ceee18.tar.gz
ivy-ocaml-a17272283c803e13258e5dc6b19533c672ceee18.tar.bz2
ivy-ocaml-a17272283c803e13258e5dc6b19533c672ceee18.tar.xz
some fixes in ivy-ocaml tag 1.2
Diffstat (limited to 'trunk/ivyLoop.ml')
-rw-r--r--trunk/ivyLoop.ml22
1 files changed, 22 insertions, 0 deletions
diff --git a/trunk/ivyLoop.ml b/trunk/ivyLoop.ml
new file mode 100644
index 0000000..5808de4
--- /dev/null
+++ b/trunk/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)