Module Luv.Thread_pool
Thread pool.
See libuv thread pool in the user guide and Thread pool work scheduling in libuv.
module Request : sig ... end
Optional request objects for canceling thread pool requests. Binds
uv_work_t
.
val queue_work : ?loop:Loop.t -> ?request:Request.t -> (unit -> unit) -> ((unit, Error.t) Result.result -> unit) -> unit
Schedules a function to be called by a thread in the thread pool.
Binds
uv_queue_work
.In
Luv.Thread_pool.queue_work f after
,f
is the function that will be called in the thread pool.after
will be called by the libuv loop (that is, typically, in the main thread) afterf
completes, or immediately, in case there is an error schedulingf
.
val queue_c_work : ?loop:Loop.t -> ?request:Request.t -> ?argument:nativeint -> nativeint -> ((unit, Error.t) Result.result -> unit) -> unit
Schedules a C function to be called by a thread in the thread pool.
Alternative binding to
uv_queue_work
.The C function is specified by its address. It should have signature
(*)(void*)
. The default value is?argument
isNULL
(0).
val set_size : ?if_not_already_set:bool -> int -> unit
Sets
UV_THREADPOOL_SIZE
.This function should be called as soon during process startup as possible.