Module Netsys_oothr

module Netsys_oothr: sig .. end

Object-oriented thread API


Makes the most important multi-threading primitives available using object types. For single-threaded apps, the operations are substituted by no-ops.

class type mtprovider = object .. end
class type thread = object .. end
class type mutex = object .. end
class type condition = object .. end
val provider : mtprovider Stdlib.ref

Return the multi-threading provider

val serialize : mutex -> ('a -> 'b) -> 'a -> 'b

serialize m f arg: Locks m, runs f arg, unlocks m, and returns the result.

val atomic_init : 'a option Stdlib.ref -> 'a -> 'a

atomic_init var new_value: If the variable var is None, it is set to Some new_value, and new_value is returned. If it is Some old_value, then old_value is returned. The operation is atomic.

This function works independently of the provider.

val compare_and_swap : 'a Stdlib.ref -> 'a -> 'a -> bool

compare_and_swap var old_value new_value: If the variable var is physically identical to old_value it is atomically set to new_value, and true is returned. Otherwise, var is not assigned, and false is returned.

This function works independently of the provider.