模块 Runtime_events.Callbacks

module Callbacks: sig .. end

type t 

回调类型。

val create : ?runtime_begin:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_phase -> unit) ->
?runtime_end:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_phase -> unit) ->
?runtime_counter:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.runtime_counter -> int -> unit) ->
?alloc:(int -> Runtime_events.Timestamp.t -> int array -> unit) ->
?lifecycle:(int ->
Runtime_events.Timestamp.t ->
Runtime_events.lifecycle -> int option -> unit) ->
?lost_events:(int -> int -> unit) -> unit -> t

创建一个 Callback,可以选择性地订阅一个或多个运行时事件。传递给回调的第一个整数是环形缓冲区的索引。每个域在其存在期间拥有一个环形缓冲区。域终止后,新生成的域可能会接管环形缓冲区。当运行时进入新阶段时,会调用 runtime_begin 回调(例如,在次要 GC 开始时会调用带有 EV_MINOR 的 runtime_begin)。当运行时离开某个阶段时,会调用 runtime_end 回调。当运行时发出计数器时,会调用 runtime_counter 回调。lifecycle 回调在环形缓冲区生命周期发生变化时调用,消费者可能需要做出响应。alloc 回调目前仅在已检测的运行时中调用。lost_events 回调在消费者代码检测到一些未消费的事件已被覆盖时调用。

val add_user_event : 'a Runtime_events.Type.t ->
(int -> Runtime_events.Timestamp.t -> 'a Runtime_events.User.t -> 'a -> unit) ->
t -> t

add_user_event ty callback tt 扩展为额外订阅类型为 ty 的用户事件。当发生此类事件时,将使用相应的事件和有效负载调用 callback