sig
module Monitor :
sig
type 'execution_context t_ =
'execution_context Raw_monitor.t_ = {
name : Core.Std.Info.t;
here : Core.Std.Source_code_position.t option;
id : int;
parent : 'execution_context t_ option;
errors : (exn, 'execution_context) Raw_tail.t;
mutable has_seen_error : bool;
mutable someone_is_listening : bool;
}
val someone_is_listening : 'a t_ -> bool
val set_someone_is_listening : 'a t_ -> bool -> unit
val has_seen_error : 'a t_ -> bool
val set_has_seen_error : 'a t_ -> bool -> unit
val errors : 'a t_ -> (exn, 'a) Raw_tail.t
val parent : 'a t_ -> 'a t_ option
val id : 'a t_ -> int
val here : 'a t_ -> Core.Std.Source_code_position.t option
val name : 'a t_ -> Core.Std.Info.t
module Fields :
sig
val someone_is_listening : ('a t_, bool) Fieldslib.Field.t
val has_seen_error : ('a t_, bool) Fieldslib.Field.t
val errors :
('execution_context t_, (exn, 'execution_context) Raw_tail.t)
Fieldslib.Field.t
val parent :
('execution_context t_, 'execution_context t_ option)
Fieldslib.Field.t
val id : ('a t_, int) Fieldslib.Field.t
val here :
('a t_, Core.Std.Source_code_position.t option) Fieldslib.Field.t
val name : ('a t_, Core.Std.Info.t) Fieldslib.Field.t
end
module Pretty :
sig
type one =
Raw_monitor.Pretty.one = {
name : Core.Std.Info.t;
here : Core.Std.Source_code_position.t option;
id : int;
has_seen_error : bool;
someone_is_listening : bool;
}
val sexp_of_one : one -> Sexplib.Sexp.t
type t = one list
val sexp_of_t : one Core.Std.List.t -> Sexplib.Sexp.t
end
val to_pretty : 'a t_ -> Pretty.one Core.Std.List.t
val sexp_of_t_ : 'a -> 'b t_ -> Sexplib.Sexp.t
exception Shutdown
val ounit_tests : unit -> OUnit.test
end
type t =
Execution_context.t = {
work_group : Work_group.t Backpatched.t;
monitor : t Monitor.t_ Backpatched.t;
priority : Priority.t;
backtrace_history : Core.Std.Backtrace.t list;
}
val sexp_of_t : t -> Sexplib.Sexp.t
val backtrace_history : t -> Core.Std.Backtrace.t list
val priority : t -> Priority.t
module Fields :
sig
val names : string list
val backtrace_history :
(t, Core.Std.Backtrace.t list) Fieldslib.Field.t
val priority : (t, Priority.t) Fieldslib.Field.t
val monitor : (t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t
val work_group : (t, Work_group.t Backpatched.t) Fieldslib.Field.t
val make_creator :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t ->
'a -> ('b -> Work_group.t Backpatched.t) * 'c) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t ->
'c -> ('b -> t Monitor.t_ Backpatched.t) * 'd) ->
priority:((t, Priority.t) Fieldslib.Field.t ->
'd -> ('b -> Priority.t) * 'e) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
'e -> ('b -> Core.Std.Backtrace.t list) * 'f) ->
'a -> ('b -> t) * 'f
val create :
work_group:Work_group.t Backpatched.t ->
monitor:t Monitor.t_ Backpatched.t ->
priority:Priority.t ->
backtrace_history:Core.Std.Backtrace.t list -> t
val iter :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t -> unit) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t -> unit) ->
priority:((t, Priority.t) Fieldslib.Field.t -> unit) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
'a) ->
'a
val fold :
init:'a ->
work_group:('a ->
(t, Work_group.t Backpatched.t) Fieldslib.Field.t -> 'b) ->
monitor:('b ->
(t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t -> 'c) ->
priority:('c -> (t, Priority.t) Fieldslib.Field.t -> 'd) ->
backtrace_history:('d ->
(t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
'e) ->
'e
val map :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t ->
Work_group.t Backpatched.t) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t ->
t Monitor.t_ Backpatched.t) ->
priority:((t, Priority.t) Fieldslib.Field.t -> Priority.t) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
Core.Std.Backtrace.t list) ->
t
val map_poly : (t, 'a) Fieldslib.Field.user -> 'a list
val for_all :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t -> bool) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t -> bool) ->
priority:((t, Priority.t) Fieldslib.Field.t -> bool) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
bool) ->
bool
val exists :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t -> bool) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t -> bool) ->
priority:((t, Priority.t) Fieldslib.Field.t -> bool) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
bool) ->
bool
val to_list :
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t -> 'a) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t -> 'a) ->
priority:((t, Priority.t) Fieldslib.Field.t -> 'a) ->
backtrace_history:((t, Core.Std.Backtrace.t list) Fieldslib.Field.t ->
'a) ->
'a list
module Direct :
sig
val iter :
t ->
work_group:((t, Work_group.t Backpatched.t) Fieldslib.Field.t ->
t -> Work_group.t Backpatched.t -> unit) ->
monitor:((t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t ->
t -> t Monitor.t_ Backpatched.t -> unit) ->
priority:((t, Priority.t) Fieldslib.Field.t ->
t -> Priority.t -> unit) ->
backtrace_history:((t, Core.Std.Backtrace.t list)
Fieldslib.Field.t ->
t -> Core.Std.Backtrace.t list -> 'a) ->
'a
val fold :
t ->
init:'a ->
work_group:('a ->
(t, Work_group.t Backpatched.t) Fieldslib.Field.t ->
t -> Work_group.t Backpatched.t -> 'b) ->
monitor:('b ->
(t, t Monitor.t_ Backpatched.t) Fieldslib.Field.t ->
t -> t Monitor.t_ Backpatched.t -> 'c) ->
priority:('c ->
(t, Priority.t) Fieldslib.Field.t ->
t -> Priority.t -> 'd) ->
backtrace_history:('d ->
(t, Core.Std.Backtrace.t list)
Fieldslib.Field.t ->
t -> Core.Std.Backtrace.t list -> 'e) ->
'e
end
end
val invariant : t -> unit
val main_work_group_hole : Work_group.t Backpatched.Hole.t
val main_monitor_hole : t Monitor.t_ Backpatched.Hole.t
val main : t
val work_group : t -> Work_group.t
val monitor : t -> t Monitor.t_
val create_like :
?work_group:Work_group.t ->
?monitor:t Monitor.t_ -> ?priority:Priority.t -> t -> t
val record_backtrace : t -> t
val ounit_tests : unit -> OUnit.test
end