Module Luv.Thread

Threads.

See Threads in the user guide and Threading and synchronization utilities in libuv.

type t

Binds uv_thread_t.

val self : unit -> t

Returns the representation of the calling thread.

Binds uv_thread_self. See pthread_self(3p).

val equal : t -> t -> bool

Compares two thread values for equality.

Binds uv_thread_equal. See pthread_equal(3p).

val create : ?⁠stack_size:int -> (unit -> unit) -> (tError.t) Result.result

Starts a new thread, which will run the given function.

Binds uv_thread_create. See pthread_create(3p).

val create_c : ?⁠stack_size:int -> ?⁠argument:nativeint -> nativeint -> (tError.t) Result.result

Like Luv.Thread.create, but runs a C function by pointer.

The C function should have signature (*)(void*). The default value of ?argument is NULL (0).

val join : t -> (unit, Error.t) Result.result

Waits for the given thread to terminate.

Binds uv_thread_join. See pthread_join(3p).