class type parallelizer =object
..end
method ptype : parallelization_type
method init : unit -> unit
method start_thread : (par_thread -> unit) ->
Unix.file_descr list ->
Unix.file_descr list ->
string -> logger -> par_thread
start_thread f l_close l_share name logger
:
Starts a new thread or process and calls
f thread
in that context. Before this is done, file descriptors
are closed, controlled by the parameters l_close
and l_share
.
The descriptors in l_close
are always closed. The descriptors
in l_share
are not closed. The implementation of the parallelizer
is free to close a reasonable set of descriptors, and l_close
is the minimum, and all - l_share
is the maximum.
There is no way to check when the thread terminates.
It is allowed that the par_thread
object passed to f
is a different
object as the returned par_thread
object.
method create_mem_mutex : unit -> (unit -> unit) * (unit -> unit)
let lock, unlock = par#create_mem_locker()
: Creates a mutex that
is sufficient to protect process memory from uncoordinated access.
The function lock
obtains the lock, and unlock
releases it.method current_sys_id : [ `Process of int | `Thread of int ]