sig
module type THREAD_LOCAL_STATE =
sig
type 'a t
type 'a key
val new_key : unit -> 'a Sqlexpr_concurrency.THREAD_LOCAL_STATE.key
val get : 'a Sqlexpr_concurrency.THREAD_LOCAL_STATE.key -> 'a option
val with_value :
'a Sqlexpr_concurrency.THREAD_LOCAL_STATE.key ->
'a option ->
(unit -> 'b Sqlexpr_concurrency.THREAD_LOCAL_STATE.t) ->
'b Sqlexpr_concurrency.THREAD_LOCAL_STATE.t
end
module type THREAD =
sig
type 'a t
val return : 'a -> 'a Sqlexpr_concurrency.THREAD.t
val bind :
'a Sqlexpr_concurrency.THREAD.t ->
('a -> 'b Sqlexpr_concurrency.THREAD.t) ->
'b Sqlexpr_concurrency.THREAD.t
val fail : exn -> 'a Sqlexpr_concurrency.THREAD.t
val catch :
(unit -> 'a Sqlexpr_concurrency.THREAD.t) ->
(exn -> 'a Sqlexpr_concurrency.THREAD.t) ->
'a Sqlexpr_concurrency.THREAD.t
val finalize :
(unit -> 'a Sqlexpr_concurrency.THREAD.t) ->
(unit -> unit Sqlexpr_concurrency.THREAD.t) ->
'a Sqlexpr_concurrency.THREAD.t
val sleep : float -> unit Sqlexpr_concurrency.THREAD.t
val auto_yield : float -> unit -> unit Sqlexpr_concurrency.THREAD.t
type mutex
val create_recursive_mutex : unit -> Sqlexpr_concurrency.THREAD.mutex
val with_lock :
Sqlexpr_concurrency.THREAD.mutex ->
(unit -> 'a Sqlexpr_concurrency.THREAD.t) ->
'a Sqlexpr_concurrency.THREAD.t
val register_finaliser :
('a -> unit Sqlexpr_concurrency.THREAD.t) -> 'a -> unit
type 'a key
val new_key : unit -> 'a key
val get : 'a key -> 'a option
val with_value : 'a key -> 'a option -> (unit -> 'b t) -> 'b t
end
module Id :
sig
type 'a t = 'a
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
val fail : exn -> 'a t
val catch : (unit -> 'a t) -> (exn -> 'a t) -> 'a t
val finalize : (unit -> 'a t) -> (unit -> unit t) -> 'a t
val sleep : float -> unit t
val auto_yield : float -> unit -> unit t
type mutex
val create_recursive_mutex : unit -> mutex
val with_lock : mutex -> (unit -> 'a t) -> 'a t
val register_finaliser : ('a -> unit t) -> 'a -> unit
type 'a key = 'a Lwt.key
val new_key : unit -> 'a key
val get : 'a key -> 'a option
val with_value : 'a key -> 'a option -> (unit -> 'b t) -> 'b t
end
module Lwt :
sig
type 'a t = 'a Lwt.t
val return : 'a -> 'a t
val bind : 'a t -> ('a -> 'b t) -> 'b t
val fail : exn -> 'a t
val catch : (unit -> 'a t) -> (exn -> 'a t) -> 'a t
val finalize : (unit -> 'a t) -> (unit -> unit t) -> 'a t
val sleep : float -> unit t
val auto_yield : float -> unit -> unit t
type mutex
val create_recursive_mutex : unit -> mutex
val with_lock : mutex -> (unit -> 'a t) -> 'a t
val register_finaliser : ('a -> unit t) -> 'a -> unit
type 'a key = 'a Lwt.key
val new_key : unit -> 'a key
val get : 'a key -> 'a option
val with_value : 'a key -> 'a option -> (unit -> 'b t) -> 'b t
end
end