Fixed the problem with segfaults - actually a bug/limitation in
[ocaml-ancient.git] / ancient.ml
index e0cd968..dfce30c 100644 (file)
@@ -1,5 +1,5 @@
 (* Mark objects as 'ancient' so they are taken out of the OCaml heap.
- * $Id: ancient.ml,v 1.2 2006-09-27 15:36:18 rich Exp $
+ * $Id: ancient.ml,v 1.4 2006-09-28 12:40:07 rich Exp $
  *)
 
 type 'a ancient
@@ -10,8 +10,12 @@ external follow : 'a ancient -> 'a = "ancient_follow"
 
 external delete : 'a ancient -> unit = "ancient_delete"
 
-external share : Unix.file_descr -> 'a -> 'a ancient = "ancient_share"
+type md
 
-external attach : Unix.file_descr -> 'a ancient = "ancient_attach"
+external attach : Unix.file_descr -> nativeint -> md = "ancient_attach"
 
-external detach : 'a ancient -> unit = "ancient_detach"
+external detach : md -> unit = "ancient_detach"
+
+external share : md -> int -> 'a -> 'a ancient = "ancient_share"
+
+external get : md -> int -> 'a ancient = "ancient_get"