sig
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
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
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
end
end