sig
val __pa_ounit_275876e34cf609db118f3d84b799a790 : string
module Monitor :
sig
val __pa_ounit_275876e34cf609db118f3d84b799a790 : string
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;
mutable kill_index : Kill_index.t;
}
val kill_index : 'a t_ -> Kill_index.t
val set_kill_index : 'a t_ -> Kill_index.t -> unit
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_of_t_ :
sig
val names : string list
val kill_index :
([< `Read | `Set_and_create ], 'a t_, Kill_index.t)
Fieldslib.Field.t_with_perm
val someone_is_listening :
([< `Read | `Set_and_create ], 'a t_, bool)
Fieldslib.Field.t_with_perm
val has_seen_error :
([< `Read | `Set_and_create ], 'a t_, bool)
Fieldslib.Field.t_with_perm
val errors :
([< `Read | `Set_and_create ], 'execution_context t_,
(exn, 'execution_context) Raw_tail.t)
Fieldslib.Field.t_with_perm
val parent :
([< `Read | `Set_and_create ], 'execution_context t_,
'execution_context t_ option)
Fieldslib.Field.t_with_perm
val id :
([< `Read | `Set_and_create ], 'a t_, int)
Fieldslib.Field.t_with_perm
val here :
([< `Read | `Set_and_create ], 'a t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm
val name :
([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm
val make_creator :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
'b -> ('c -> Core.Std.Info.t) * 'd) ->
here:(([< `Read | `Set_and_create ], 'e t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm ->
'd -> ('c -> Core.Std.Source_code_position.t option) * 'f) ->
id:(([< `Read | `Set_and_create ], 'g t_, int)
Fieldslib.Field.t_with_perm -> 'f -> ('c -> int) * 'h) ->
parent:(([< `Read | `Set_and_create ], 'i t_, 'i t_ option)
Fieldslib.Field.t_with_perm ->
'h -> ('c -> 'j t_ option) * 'k) ->
errors:(([< `Read | `Set_and_create ], 'l t_,
(exn, 'l) Raw_tail.t)
Fieldslib.Field.t_with_perm ->
'k -> ('c -> (exn, 'j) Raw_tail.t) * 'm) ->
has_seen_error:(([< `Read | `Set_and_create ], 'n t_, bool)
Fieldslib.Field.t_with_perm ->
'm -> ('c -> bool) * 'o) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'p t_, bool)
Fieldslib.Field.t_with_perm ->
'o -> ('c -> bool) * 'q) ->
kill_index:(([< `Read | `Set_and_create ], 'r t_, Kill_index.t)
Fieldslib.Field.t_with_perm ->
'q -> ('c -> Kill_index.t) * 's) ->
'b -> ('c -> 'j t_) * 's
val create :
name:Core.Std.Info.t ->
here:Core.Std.Source_code_position.t option ->
id:int ->
parent:'a t_ option ->
errors:(exn, 'a) Raw_tail.t ->
has_seen_error:bool ->
someone_is_listening:bool -> kill_index:Kill_index.t -> 'a t_
val map :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> Core.Std.Info.t) ->
here:(([< `Read | `Set_and_create ], 'b t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm ->
Core.Std.Source_code_position.t option) ->
id:(([< `Read | `Set_and_create ], 'c t_, int)
Fieldslib.Field.t_with_perm -> int) ->
parent:(([< `Read | `Set_and_create ], 'd t_, 'd t_ option)
Fieldslib.Field.t_with_perm -> 'e t_ option) ->
errors:(([< `Read | `Set_and_create ], 'f t_,
(exn, 'f) Raw_tail.t)
Fieldslib.Field.t_with_perm -> (exn, 'e) Raw_tail.t) ->
has_seen_error:(([< `Read | `Set_and_create ], 'g t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'h t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
kill_index:(([< `Read | `Set_and_create ], 'i t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> Kill_index.t) ->
'e t_
val iter :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'b) ->
here:(([< `Read | `Set_and_create ], 'c t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm -> 'd) ->
id:(([< `Read | `Set_and_create ], 'e t_, int)
Fieldslib.Field.t_with_perm -> 'f) ->
parent:(([< `Read | `Set_and_create ], 'g t_, 'g t_ option)
Fieldslib.Field.t_with_perm -> 'h) ->
errors:(([< `Read | `Set_and_create ], 'i t_,
(exn, 'i) Raw_tail.t)
Fieldslib.Field.t_with_perm -> 'j) ->
has_seen_error:(([< `Read | `Set_and_create ], 'k t_, bool)
Fieldslib.Field.t_with_perm -> 'l) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'm t_, bool)
Fieldslib.Field.t_with_perm -> 'n) ->
kill_index:(([< `Read | `Set_and_create ], 'o t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'p) ->
'p
val fold :
init:'a ->
name:('a ->
([< `Read | `Set_and_create ], 'b t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'c) ->
here:('c ->
([< `Read | `Set_and_create ], 'd t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm -> 'e) ->
id:('e ->
([< `Read | `Set_and_create ], 'f t_, int)
Fieldslib.Field.t_with_perm -> 'g) ->
parent:('g ->
([< `Read | `Set_and_create ], 'h t_, 'h t_ option)
Fieldslib.Field.t_with_perm -> 'i) ->
errors:('i ->
([< `Read | `Set_and_create ], 'j t_,
(exn, 'j) Raw_tail.t)
Fieldslib.Field.t_with_perm -> 'k) ->
has_seen_error:('k ->
([< `Read | `Set_and_create ], 'l t_, bool)
Fieldslib.Field.t_with_perm -> 'm) ->
someone_is_listening:('m ->
([< `Read | `Set_and_create ], 'n t_, bool)
Fieldslib.Field.t_with_perm -> 'o) ->
kill_index:('o ->
([< `Read | `Set_and_create ], 'p t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'q) ->
'q
val map_poly :
([< `Read | `Set_and_create ], 'a t_, 'b) Fieldslib.Field.user ->
'b list
val for_all :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> bool) ->
here:(([< `Read | `Set_and_create ], 'b t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm -> bool) ->
id:(([< `Read | `Set_and_create ], 'c t_, int)
Fieldslib.Field.t_with_perm -> bool) ->
parent:(([< `Read | `Set_and_create ], 'd t_, 'd t_ option)
Fieldslib.Field.t_with_perm -> bool) ->
errors:(([< `Read | `Set_and_create ], 'e t_,
(exn, 'e) Raw_tail.t)
Fieldslib.Field.t_with_perm -> bool) ->
has_seen_error:(([< `Read | `Set_and_create ], 'f t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'g t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
kill_index:(([< `Read | `Set_and_create ], 'h t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val exists :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> bool) ->
here:(([< `Read | `Set_and_create ], 'b t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm -> bool) ->
id:(([< `Read | `Set_and_create ], 'c t_, int)
Fieldslib.Field.t_with_perm -> bool) ->
parent:(([< `Read | `Set_and_create ], 'd t_, 'd t_ option)
Fieldslib.Field.t_with_perm -> bool) ->
errors:(([< `Read | `Set_and_create ], 'e t_,
(exn, 'e) Raw_tail.t)
Fieldslib.Field.t_with_perm -> bool) ->
has_seen_error:(([< `Read | `Set_and_create ], 'f t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'g t_, bool)
Fieldslib.Field.t_with_perm -> bool) ->
kill_index:(([< `Read | `Set_and_create ], 'h t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val to_list :
name:(([< `Read | `Set_and_create ], 'a t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm -> 'b) ->
here:(([< `Read | `Set_and_create ], 'c t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm -> 'b) ->
id:(([< `Read | `Set_and_create ], 'd t_, int)
Fieldslib.Field.t_with_perm -> 'b) ->
parent:(([< `Read | `Set_and_create ], 'e t_, 'e t_ option)
Fieldslib.Field.t_with_perm -> 'b) ->
errors:(([< `Read | `Set_and_create ], 'f t_,
(exn, 'f) Raw_tail.t)
Fieldslib.Field.t_with_perm -> 'b) ->
has_seen_error:(([< `Read | `Set_and_create ], 'g t_, bool)
Fieldslib.Field.t_with_perm -> 'b) ->
someone_is_listening:(([< `Read | `Set_and_create ], 'h t_, bool)
Fieldslib.Field.t_with_perm -> 'b) ->
kill_index:(([< `Read | `Set_and_create ], 'i t_, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'b) ->
'b list
module Direct :
sig
val iter :
'a t_ ->
name:(([< `Read | `Set_and_create ], 'b t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> Core.Std.Info.t -> 'c) ->
here:(([< `Read | `Set_and_create ], 'd t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm ->
'a t_ -> Core.Std.Source_code_position.t option -> 'e) ->
id:(([< `Read | `Set_and_create ], 'f t_, int)
Fieldslib.Field.t_with_perm -> 'a t_ -> int -> 'g) ->
parent:(([< `Read | `Set_and_create ], 'h t_, 'h t_ option)
Fieldslib.Field.t_with_perm ->
'a t_ -> 'a t_ option -> 'i) ->
errors:(([< `Read | `Set_and_create ], 'j t_,
(exn, 'j) Raw_tail.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> (exn, 'a) Raw_tail.t -> 'k) ->
has_seen_error:(([< `Read | `Set_and_create ], 'l t_, bool)
Fieldslib.Field.t_with_perm ->
'a t_ -> bool -> 'm) ->
someone_is_listening:(([< `Read | `Set_and_create ],
'n t_, bool)
Fieldslib.Field.t_with_perm ->
'a t_ -> bool -> 'o) ->
kill_index:(([< `Read | `Set_and_create ], 'p t_,
Kill_index.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> Kill_index.t -> 'q) ->
'q
val fold :
'a t_ ->
init:'b ->
name:('b ->
([< `Read | `Set_and_create ], 'c t_, Core.Std.Info.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> Core.Std.Info.t -> 'd) ->
here:('d ->
([< `Read | `Set_and_create ], 'e t_,
Core.Std.Source_code_position.t option)
Fieldslib.Field.t_with_perm ->
'a t_ -> Core.Std.Source_code_position.t option -> 'f) ->
id:('f ->
([< `Read | `Set_and_create ], 'g t_, int)
Fieldslib.Field.t_with_perm -> 'a t_ -> int -> 'h) ->
parent:('h ->
([< `Read | `Set_and_create ], 'i t_, 'i t_ option)
Fieldslib.Field.t_with_perm ->
'a t_ -> 'a t_ option -> 'j) ->
errors:('j ->
([< `Read | `Set_and_create ], 'k t_,
(exn, 'k) Raw_tail.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> (exn, 'a) Raw_tail.t -> 'l) ->
has_seen_error:('l ->
([< `Read | `Set_and_create ], 'm t_, bool)
Fieldslib.Field.t_with_perm ->
'a t_ -> bool -> 'n) ->
someone_is_listening:('n ->
([< `Read | `Set_and_create ],
'o t_, bool)
Fieldslib.Field.t_with_perm ->
'a t_ -> bool -> 'p) ->
kill_index:('p ->
([< `Read | `Set_and_create ], 'q t_,
Kill_index.t)
Fieldslib.Field.t_with_perm ->
'a t_ -> Kill_index.t -> 'r) ->
'r
end
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;
kill_index : Kill_index.t;
}
val sexp_of_one : one -> Sexplib.Sexp.t
type t = one list
val sexp_of_t : one list -> 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 update_kill_index : 'a t_ -> global_kill_index:Kill_index.t -> unit
end
type t =
Execution_context.t = {
monitor : t Monitor.t_ Backpatched.t;
priority : Priority.t;
backtrace_history : Core.Std.Backtrace.t list;
mutable kill_index : Kill_index.t;
}
val sexp_of_t : t -> Sexplib.Sexp.t
val kill_index : t -> Kill_index.t
val set_kill_index : t -> Kill_index.t -> unit
val backtrace_history : t -> Core.Std.Backtrace.t list
val priority : t -> Priority.t
module Fields :
sig
val names : string list
val kill_index :
([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm
val backtrace_history :
([< `Read | `Set_and_create ], t, Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm
val priority :
([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm
val monitor :
([< `Read | `Set_and_create ], t, t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm
val make_creator :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm ->
'a -> ('b -> t Monitor.t_ Backpatched.t) * 'c) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm ->
'c -> ('b -> Priority.t) * 'd) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm ->
'd -> ('b -> Core.Std.Backtrace.t list) * 'e) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm ->
'e -> ('b -> Kill_index.t) * 'f) ->
'a -> ('b -> t) * 'f
val create :
monitor:t Monitor.t_ Backpatched.t ->
priority:Priority.t ->
backtrace_history:Core.Std.Backtrace.t list ->
kill_index:Kill_index.t -> t
val map :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> t Monitor.t_ Backpatched.t) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> Priority.t) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm ->
Core.Std.Backtrace.t list) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> Kill_index.t) ->
t
val iter :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> 'a) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> 'b) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm -> 'c) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'd) ->
'd
val fold :
init:'a ->
monitor:('a ->
([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> 'b) ->
priority:('b ->
([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> 'c) ->
backtrace_history:('c ->
([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm -> 'd) ->
kill_index:('d ->
([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'e) ->
'e
val map_poly :
([< `Read | `Set_and_create ], t, 'a) Fieldslib.Field.user -> 'a list
val for_all :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> bool) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> bool) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm -> bool) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val exists :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> bool) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> bool) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm -> bool) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> bool) ->
bool
val to_list :
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm -> 'a) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> 'a) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm -> 'a) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm -> 'a) ->
'a list
module Direct :
sig
val iter :
t ->
monitor:(([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm ->
t -> t Monitor.t_ Backpatched.t -> 'a) ->
priority:(([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> t -> Priority.t -> 'b) ->
backtrace_history:(([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm ->
t -> Core.Std.Backtrace.t list -> 'c) ->
kill_index:(([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm ->
t -> Kill_index.t -> 'd) ->
'd
val fold :
t ->
init:'a ->
monitor:('a ->
([< `Read | `Set_and_create ], t,
t Monitor.t_ Backpatched.t)
Fieldslib.Field.t_with_perm ->
t -> t Monitor.t_ Backpatched.t -> 'b) ->
priority:('b ->
([< `Read | `Set_and_create ], t, Priority.t)
Fieldslib.Field.t_with_perm -> t -> Priority.t -> 'c) ->
backtrace_history:('c ->
([< `Read | `Set_and_create ], t,
Core.Std.Backtrace.t list)
Fieldslib.Field.t_with_perm ->
t -> Core.Std.Backtrace.t list -> 'd) ->
kill_index:('d ->
([< `Read | `Set_and_create ], t, Kill_index.t)
Fieldslib.Field.t_with_perm ->
t -> Kill_index.t -> 'e) ->
'e
end
end
val invariant : t -> unit
val main_monitor_hole : t Monitor.t_ Backpatched.Hole.t
val main : t
val monitor : t -> t Monitor.t_
val create_like : ?monitor:t Monitor.t_ -> ?priority:Priority.t -> t -> t
val record_backtrace : t -> t
end