gvl_timing 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/ext/gvl_timing/gvl_timing.c +16 -4
- data/lib/gvl_timing/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b8a3843975d959214d629bf8e80bbf5caf855684c32bef00f4832365b08ee4c
|
4
|
+
data.tar.gz: 30b35979fb13defec735e34d5a07575093779be8bdb1b3778a950581a76daca0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1167a9d1b268a072388db964439f1393f78aea3454dccf8c96fcc6ae392f760f74568393b46b3a14f8aff624c67c7af874d03413821261aa304d4b07545af0e5
|
7
|
+
data.tar.gz: 0c3c576074e6e742a1e82e0dabf0851e22da590d4d115f73934d9fefec7c06a2b1f0ca3cd8f687099dc5f06087f60481f916053206a08d5ff0e1e43c3d486901
|
data/ext/gvl_timing/gvl_timing.c
CHANGED
@@ -46,7 +46,6 @@ void record_timing(struct gvl_timer *timer, enum ruby_gvl_state new_state) {
|
|
46
46
|
if (new_state == GVL_STATE_IDLE) {
|
47
47
|
timer->yields_count++;
|
48
48
|
}
|
49
|
-
|
50
49
|
}
|
51
50
|
|
52
51
|
void internal_thread_event_cb(rb_event_flag_t event, const rb_internal_thread_event_data_t *event_data, void *data) {
|
@@ -81,12 +80,25 @@ void internal_thread_event_cb(rb_event_flag_t event, const rb_internal_thread_ev
|
|
81
80
|
record_timing(timer, new_state);
|
82
81
|
}
|
83
82
|
|
83
|
+
static size_t gvl_timer_memsize(const void *data) {
|
84
|
+
return sizeof(struct gvl_timer);
|
85
|
+
}
|
86
|
+
|
87
|
+
static void gvl_timer_free(void *data) {
|
88
|
+
struct gvl_timer *timer = (struct gvl_timer *)data;
|
89
|
+
|
90
|
+
if (timer->running) {
|
91
|
+
rb_internal_thread_remove_event_hook(timer->event_hook);
|
92
|
+
}
|
93
|
+
ruby_xfree(timer);
|
94
|
+
}
|
95
|
+
|
84
96
|
static const rb_data_type_t gvl_timer_type = {
|
85
97
|
.wrap_struct_name = "gvl_timer",
|
86
98
|
.function = {
|
87
|
-
|
88
|
-
|
89
|
-
|
99
|
+
.dsize = gvl_timer_memsize,
|
100
|
+
.dmark = NULL,
|
101
|
+
.dfree = gvl_timer_free,
|
90
102
|
},
|
91
103
|
};
|
92
104
|
|
data/lib/gvl_timing/version.rb
CHANGED