hack_parallel

Parallel and shared memory library
Library hack_parallel.interface
type config = {
global_size : int;
heap_size : int;
dep_table_pow : int;
hash_table_pow : int;
shm_dirs : string list;
shm_min_avail : int;
log_level : int;
}
type handle = private {
h_fd : Unix.file_descr;
h_global_size : int;
h_heap_size : int;
}
exception Out_of_shared_memory
exception Hash_table_full
exception Dep_table_full
exception Heap_full
exception Sql_assertion_failure of int
exception C_assertion_failure of string
val init : config -> handle
val connect : handle -> unit
val collect : [ `gentle | `aggressive | `always_TEST ] -> unit
val init_done : unit -> unit
val save_dep_table_sqlite : string -> string -> int
val load_dep_table_sqlite : string -> bool -> int
val save_table : string -> unit
val load_table : string -> unit
val save_table_sqlite : string -> int
val save_table_keys_sqlite : string -> string array -> int
val load_table_sqlite : string -> bool -> int
val cleanup_sqlite : unit -> unit
val heap_size : unit -> int
val wasted_heap_size : unit -> int
type table_stats = {
nonempty_slots : int;
used_slots : int;
slots : int;
}
val dep_stats : unit -> table_stats
val hash_stats : unit -> table_stats
val is_heap_overflow : unit -> bool
val invalidate_caches : unit -> unit
val value_size : Obj.t -> int
module type NoCache = sig ... end
module type WithCache = sig ... end
module type UserKeyType = sig ... end
module type CacheType = sig ... end