26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'ext/corkscrews/record.c', line 26
VALUE
cs_record_snapshot(VALUE self)
{
(void)self;
VALUE hash = rb_hash_new();
rb_hash_aset(hash, ID2SYM(rb_intern("global_delay_ns")), ULL2NUM(atomic_load(&cs_global.global_delay_ns)));
rb_hash_aset(hash, ID2SYM(rb_intern("experiment_id")), ULL2NUM(atomic_load(&cs_global.experiment_id)));
rb_hash_aset(hash, ID2SYM(rb_intern("target_kind")), UINT2NUM(atomic_load(&cs_global.target_kind)));
rb_hash_aset(hash, ID2SYM(rb_intern("target_iseq")), ULL2NUM(atomic_load(&cs_global.target_iseq)));
rb_hash_aset(hash, ID2SYM(rb_intern("target_line")), UINT2NUM(atomic_load(&cs_global.target_line)));
rb_hash_aset(hash, ID2SYM(rb_intern("speedup_pct")), UINT2NUM(atomic_load(&cs_global.speedup_pct)));
rb_hash_aset(hash, ID2SYM(rb_intern("vclock_credit_ns")), ULL2NUM(atomic_load(&cs_global.vclock_credit_ns)));
rb_hash_aset(hash, ID2SYM(rb_intern("samples")), ULL2NUM(atomic_load(&cs_global.samples)));
rb_hash_aset(hash, ID2SYM(rb_intern("target_hits")), ULL2NUM(atomic_load(&cs_global.target_hits)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_events_started")), ULL2NUM(atomic_load(&cs_global.thread_events_started)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_events_ready")), ULL2NUM(atomic_load(&cs_global.thread_events_ready)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_events_resumed")), ULL2NUM(atomic_load(&cs_global.thread_events_resumed)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_events_suspended")), ULL2NUM(atomic_load(&cs_global.thread_events_suspended)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_events_exited")), ULL2NUM(atomic_load(&cs_global.thread_events_exited)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_state_running")), ULL2NUM(atomic_load(&cs_global.thread_state_running)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_state_ready")), ULL2NUM(atomic_load(&cs_global.thread_state_ready)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_state_suspended")), ULL2NUM(atomic_load(&cs_global.thread_state_suspended)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_state_dead")), ULL2NUM(atomic_load(&cs_global.thread_state_dead)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_live_count")), ULL2NUM(atomic_load(&cs_global.thread_live_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("thread_max_live_count")), ULL2NUM(atomic_load(&cs_global.thread_max_live_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("gc_enter_count")), ULL2NUM(atomic_load(&cs_global.gc_enter_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("gc_exit_count")), ULL2NUM(atomic_load(&cs_global.gc_exit_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("gc_pause_ns")), ULL2NUM(atomic_load(&cs_global.gc_pause_ns)));
rb_hash_aset(hash, ID2SYM(rb_intern("debt_settlements")), ULL2NUM(atomic_load(&cs_global.debt_settlements)));
rb_hash_aset(hash, ID2SYM(rb_intern("debt_settled_ns")), ULL2NUM(atomic_load(&cs_global.debt_settled_ns)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_ticks")), ULL2NUM(atomic_load(&cs_global.monitor_ticks)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_signals")), ULL2NUM(atomic_load(&cs_global.monitor_signals)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_signal_failures")), ULL2NUM(atomic_load(&cs_global.monitor_signal_failures)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_start_count")), ULL2NUM(atomic_load(&cs_global.monitor_start_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_stop_count")), ULL2NUM(atomic_load(&cs_global.monitor_stop_count)));
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_running")), atomic_load(&cs_global.monitor_running) ? Qtrue : Qfalse);
rb_hash_aset(hash, ID2SYM(rb_intern("monitor_target_registered")), atomic_load(&cs_global.monitor_target_registered) ? Qtrue : Qfalse);
rb_hash_aset(hash, ID2SYM(rb_intern("record_ring_size")), UINT2NUM(CS_RECORD_RING_SIZE));
rb_hash_aset(hash, ID2SYM(rb_intern("record_head")), ULL2NUM(atomic_load(&record_head)));
rb_hash_aset(hash, ID2SYM(rb_intern("record_dropped")), ULL2NUM(atomic_load(&record_dropped)));
return hash;
}
|