


The standard library Runtime_Internals api defines access to functionality such as control of the garbage collector.
The Runtime_Internals api is implemented by runtime_internals in src/lib/std/src/nj/runtime-internals.pkg.
The Runtime_Internals api source code is in src/lib/std/src/nj/runtime-internals.api.
The above information is manually maintained and may contain errors.
api { package at : api {
When
= APP_STARTUP
| FORK_TO_DISK
| SHUTDOWN
| SPAWN_TO_DISK
| STARTUP;
all : List(When );
schedule : (String , List(When ) , (When -> Void))
-> Null_Or(((List(When ) , (When -> Void))) );
deschedule : String
-> Null_Or(((List(When ) , (When -> Void))) );
run_functions_scheduled_to_run : When -> Void;
};;
package rpc : api {
add_per_fun_call_counters_to_deep_syntax : Ref(Bool );
get_time_profiling_rw_vector : Void -> Rw_Vector(Int );
this_fn_profiling_hook_refcell__global : Ref(Int );
start_sigvtalrm_time_profiler : Void -> Void;
stop_sigvtalrm_time_profiler : Void -> Void;
sigvtalrm_time_profiler_is_running : Void -> Bool;
get_sigvtalrm_interval_in_microseconds : Void -> Int;
Profiled_Package
= PROFILED_PACKAGE {first_slot_in_time_profiling_rw_vector:Int,
fun_count:Int, fun_names:String,
per_fun_call_counts:Rw_Vector(Int )};
in_runtime__cpu_user_index : Int;
in_minor_heapcleaner__cpu_user_index : Int;
in_major_heapcleaner__cpu_user_index : Int;
in_other_code__cpu_user_index : Int;
in_compiler__cpu_user_index : Int;
number_of_predefined_indices : Int;
get_profiled_packages_list : Void -> List(Profiled_Package );
zero_profiling_counts : Void -> Void;
space_profiling : Ref(Bool );
space_prof_register : Ref(((?.unsafe::Chunk , String) -> ?.unsafe::Chunk) );
};;
package hc : api {
clean_heap : Int -> Void;
messages : Bool -> Void;
};;
print_hook : Ref((String -> Void) );
initialize_posix_interprocess_signal_handler_table : Void -> Void;
clear_posix_interprocess_signal_handler_table : Void -> Void;
reset_posix_interprocess_signal_handler_table : Void -> Void;
reset_timers : Void -> Void;
package tdp : api {
Plugin = {enter:(Int , Int) -> Void, name:String,
nopush:(Int , Int) -> Void,
push:(Int , Int) -> Void -> Void,
register:(Int , Int , Int , String) -> Void,
save:Void -> Void -> Void};
Monitor = {monitor:(Bool , (Void -> Void)) -> Void,
name:String};
active_plugins : Ref(List(Plugin ) );
active_monitors : Ref(List(Monitor ) );
reserve : Int -> Int;
reset : Void -> Void;
idk_entry_point : Int;
idk_non_tail_call : Int;
idk_tail_call : Int;
tdp_instrument_enabled : Ref(Bool );
with_monitors : Bool -> (Void -> Void) -> Void;
};;
};


