allocations 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/liballocations/liballocations.c +0 -35
- data/lib/allocations/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eb4fcbc39ec1eab5fe4831d66b372a71ea0d0d4a
|
4
|
+
data.tar.gz: 5abee9e95a64a77c97efce6ee84fc3423f83f4a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c03ec7031bd717eac4bec3ff0939fec83549bec9eafa8696d76898fbe66d5a1d2809a63fce601b0007a5b4723d3029565eee001b48bcd76a9029144a51b9fe4e
|
7
|
+
data.tar.gz: d3eaf46688c14434715dc5b567a4da61eb7435e2e4c4bd904d27e357311a20088567d70d517fe0665148e0329bfe374513682f51f5dab4bc5f70edcdf0617c47
|
@@ -2,8 +2,6 @@
|
|
2
2
|
|
3
3
|
st_table *object_counts;
|
4
4
|
|
5
|
-
VALUE mutex;
|
6
|
-
|
7
5
|
VALUE allocation_tracer;
|
8
6
|
VALUE free_tracer;
|
9
7
|
|
@@ -25,12 +23,8 @@ void newobj_callback(VALUE tracepoint, void* data) {
|
|
25
23
|
return;
|
26
24
|
}
|
27
25
|
|
28
|
-
rb_mutex_lock(mutex);
|
29
|
-
|
30
26
|
st_lookup(object_counts, (st_data_t) klass, &count);
|
31
27
|
st_insert(object_counts, (st_data_t) klass, count + 1);
|
32
|
-
|
33
|
-
rb_mutex_unlock(mutex);
|
34
28
|
}
|
35
29
|
|
36
30
|
/**
|
@@ -47,8 +41,6 @@ void freeobj_callback(VALUE tracepoint, void* data) {
|
|
47
41
|
VALUE obj = rb_tracearg_object(trace_arg);
|
48
42
|
VALUE klass = RBASIC_CLASS(obj);
|
49
43
|
|
50
|
-
rb_mutex_lock(mutex);
|
51
|
-
|
52
44
|
if ( st_lookup(object_counts, (st_data_t) klass, &count) ) {
|
53
45
|
if ( count > 0 && (count - 1) > 0) {
|
54
46
|
st_insert(object_counts, (st_data_t) klass, count - 1);
|
@@ -58,8 +50,6 @@ void freeobj_callback(VALUE tracepoint, void* data) {
|
|
58
50
|
st_delete(object_counts, (st_data_t*) &klass, NULL);
|
59
51
|
}
|
60
52
|
}
|
61
|
-
|
62
|
-
rb_mutex_unlock(mutex);
|
63
53
|
}
|
64
54
|
|
65
55
|
/**
|
@@ -84,18 +74,12 @@ VALUE allocations_to_hash(VALUE self) {
|
|
84
74
|
st_table *local_counts;
|
85
75
|
VALUE hash;
|
86
76
|
|
87
|
-
rb_mutex_lock(mutex);
|
88
|
-
|
89
77
|
if ( !object_counts ) {
|
90
|
-
rb_mutex_unlock(mutex);
|
91
|
-
|
92
78
|
return rb_hash_new();
|
93
79
|
}
|
94
80
|
|
95
81
|
local_counts = st_copy(object_counts);
|
96
82
|
|
97
|
-
rb_mutex_unlock(mutex);
|
98
|
-
|
99
83
|
hash = rb_hash_new();
|
100
84
|
|
101
85
|
st_foreach(local_counts, each_count, (st_data_t) hash);
|
@@ -112,11 +96,7 @@ VALUE allocations_to_hash(VALUE self) {
|
|
112
96
|
* Allocations.start -> nil
|
113
97
|
*/
|
114
98
|
VALUE allocations_start(VALUE self) {
|
115
|
-
rb_mutex_lock(mutex);
|
116
|
-
|
117
99
|
if ( rb_ivar_get(self, id_enabled) == Qtrue ) {
|
118
|
-
rb_mutex_unlock(mutex);
|
119
|
-
|
120
100
|
return Qnil;
|
121
101
|
}
|
122
102
|
|
@@ -124,8 +104,6 @@ VALUE allocations_start(VALUE self) {
|
|
124
104
|
|
125
105
|
rb_ivar_set(self, id_enabled, Qtrue);
|
126
106
|
|
127
|
-
rb_mutex_unlock(mutex);
|
128
|
-
|
129
107
|
rb_tracepoint_enable(allocation_tracer);
|
130
108
|
rb_tracepoint_enable(free_tracer);
|
131
109
|
|
@@ -139,11 +117,7 @@ VALUE allocations_start(VALUE self) {
|
|
139
117
|
* Allocations.stop -> nil
|
140
118
|
*/
|
141
119
|
VALUE allocations_stop(VALUE self) {
|
142
|
-
rb_mutex_lock(mutex);
|
143
|
-
|
144
120
|
if ( rb_ivar_get(self, id_enabled) != Qtrue ) {
|
145
|
-
rb_mutex_unlock(mutex);
|
146
|
-
|
147
121
|
return Qnil;
|
148
122
|
}
|
149
123
|
|
@@ -158,8 +132,6 @@ VALUE allocations_stop(VALUE self) {
|
|
158
132
|
|
159
133
|
rb_ivar_set(self, id_enabled, Qfalse);
|
160
134
|
|
161
|
-
rb_mutex_unlock(mutex);
|
162
|
-
|
163
135
|
return Qnil;
|
164
136
|
}
|
165
137
|
|
@@ -172,14 +144,10 @@ VALUE allocations_stop(VALUE self) {
|
|
172
144
|
VALUE allocations_enabled_p(VALUE self) {
|
173
145
|
VALUE enabled = Qfalse;
|
174
146
|
|
175
|
-
rb_mutex_lock(mutex);
|
176
|
-
|
177
147
|
if ( rb_ivar_get(self, id_enabled) == Qtrue ) {
|
178
148
|
enabled = Qtrue;
|
179
149
|
}
|
180
150
|
|
181
|
-
rb_mutex_unlock(mutex);
|
182
|
-
|
183
151
|
return enabled;
|
184
152
|
}
|
185
153
|
|
@@ -192,8 +160,6 @@ void Init_liballocations() {
|
|
192
160
|
free_tracer = rb_tracepoint_new(Qnil, RUBY_INTERNAL_EVENT_FREEOBJ,
|
193
161
|
freeobj_callback, NULL);
|
194
162
|
|
195
|
-
mutex = rb_mutex_new();
|
196
|
-
|
197
163
|
id_enabled = rb_intern("enabled");
|
198
164
|
|
199
165
|
rb_define_singleton_method(mAllocations, "to_hash", allocations_to_hash, 0);
|
@@ -201,7 +167,6 @@ void Init_liballocations() {
|
|
201
167
|
rb_define_singleton_method(mAllocations, "stop", allocations_stop, 0);
|
202
168
|
rb_define_singleton_method(mAllocations, "enabled?", allocations_enabled_p, 0);
|
203
169
|
|
204
|
-
rb_define_const(mAllocations, "MUTEX", mutex);
|
205
170
|
rb_define_const(mAllocations, "ALLOCATION_TRACER", allocation_tracer);
|
206
171
|
rb_define_const(mAllocations, "FREE_TRACER", free_tracer);
|
207
172
|
}
|
data/lib/allocations/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: allocations
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yorick Peterse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
101
101
|
version: '0'
|
102
102
|
requirements: []
|
103
103
|
rubyforge_project:
|
104
|
-
rubygems_version: 2.
|
104
|
+
rubygems_version: 2.2.5
|
105
105
|
signing_key:
|
106
106
|
specification_version: 4
|
107
107
|
summary: Tracking of retained objects in CRuby
|