Plasma GitLab Archive
Projects Blog Knowledge

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.

This web site is published by Informatikbüro Gerd Stolpmann
Powered by Caml