(* $Id: netmcore_bigarray.mli 1580 2011-04-14 16:06:32Z gerd $ *) (** Shared bigarrays This modules allows to easily create bigarrays that are shared between worker processes. The access to the bigarrays is managed via {!Netmcore.res_id} resource IDs. The lifetime of the bigarray can be controlled by releasing the resource ID - if all workers release the ID, the bigarray is deleted (see {!Netmcore.release}). Note that bigarrays do not exist as part of a memory pool, but are always indepdendent shared objects. *) val create_bigarray : ('a, 'b) kind -> 'c layout -> int array -> res_id val create_bigarray1 : ('a, 'b) kind -> 'c layout -> int -> res_id val create_bigarray2 : ('a, 'b) kind -> 'c layout -> int -> int -> res_id val create_bigarray3 : ('a, 'b) kind -> 'c layout -> int -> int -> int -> res_id (** Create bigarrays like [Bigarray.Genarray.create] and [Bigarray.ArrayX.create] in a shared resource and return the resource ID. The caller of these functions counts as user of the bigarray, and needs to release the resource when it is done. *) val map_bigarray : res_id -> ('a, 'b) kind -> 'c layout -> int array -> ('a,'b,'c) Bigarray.Genarray.t val map_bigarray1 : res_id -> ('a, 'b) kind -> 'c layout -> int -> ('a,'b,'c) Bigarray.Array1.t val map_bigarray2 : res_id -> ('a, 'b) kind -> 'c layout -> int -> int -> ('a,'b,'c) Bigarray.Array2.t val map_bigarray3 : res_id -> ('a, 'b) kind -> 'c layout -> int -> int -> int -> ('a,'b,'c) Bigarray.Array3.t (** Maps bigarrays to this worker process. The arguments describing the bigarray must be the same as at the time the bigarray was created. The caller of these functions counts as user of the bigarray, and needs to release the resource when it is done. *)