Module: AllocTrack
- Defined in:
- ext/alloc_track/alloc_track.c
Defined Under Namespace
Classes: Error, LimitExceeded
Class Method Summary
collapse
Class Method Details
.alloc ⇒ Object
126
127
128
129
130
131
|
# File 'ext/alloc_track/alloc_track.c', line 126
static VALUE
alloc()
{
validate_started();
return LL2NUM(get_collector(rb_thread_current())->current_alloc);
}
|
.delta ⇒ Object
140
141
142
143
144
145
146
147
|
# File 'ext/alloc_track/alloc_track.c', line 140
static VALUE
delta()
{
stat_collector_t *c;
validate_started();
c = get_collector(rb_thread_current());
return LL2NUM(c->current_alloc - c->current_free);
}
|
.free ⇒ Object
133
134
135
136
137
138
|
# File 'ext/alloc_track/alloc_track.c', line 133
static VALUE
_free()
{
validate_started();
return LL2NUM(get_collector(rb_thread_current())->current_free);
}
|
.limit(num_allocs) ⇒ Object
175
176
177
178
179
180
181
182
183
184
185
186
|
# File 'ext/alloc_track/alloc_track.c', line 175
static VALUE
limit(VALUE self, VALUE num_allocs)
{
if (!rb_block_given_p()) {
rb_raise(rb_eArgError, "block required");
}
if (!RB_TYPE_P(num_allocs, T_FIXNUM)) {
rb_raise(rb_eArgError, "limit() must be passed a number");
}
validate_stopped();
return rb_ensure(do_limit, num_allocs, ensure_stopped, Qnil);
}
|
.max_delta ⇒ Object
149
150
151
152
153
154
155
156
|
# File 'ext/alloc_track/alloc_track.c', line 149
static VALUE
max_delta()
{
stat_collector_t *c;
validate_started();
c = get_collector(rb_thread_current());
return LL2NUM(c->max_delta);
}
|
.start ⇒ Object
106
107
108
109
110
111
112
113
114
115
116
|
# File 'ext/alloc_track/alloc_track.c', line 106
static VALUE
start()
{
validate_stopped();
/* TODO: support multiple running trackers */
if (root_collector) {
rb_raise(eAllocTrackError, "allocation tracker already running on another thread");
}
add_collector(rb_thread_current());
return Qnil;
}
|
.started? ⇒ Boolean
84
85
86
87
88
|
# File 'ext/alloc_track/alloc_track.c', line 84
static VALUE
started()
{
return get_collector(rb_thread_current()) ? Qtrue : Qfalse;
}
|
.stop ⇒ Object
118
119
120
121
122
123
124
|
# File 'ext/alloc_track/alloc_track.c', line 118
static VALUE
stop()
{
validate_started();
remove_collector(rb_thread_current());
return Qnil;
}
|