package gapi-ocaml

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

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.

OCaml

Innovation. Community. Security.