summaryrefslogtreecommitdiff
path: root/ractor.c
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2020-11-27 17:36:02 +0900
committerKoichi Sasada <ko1@atdot.net>2020-11-27 17:36:02 +0900
commit5496415d3165e57e3ade16238a4cc9ec2c3a81f6 (patch)
tree4dd8c176afc5b1e109281c4816c21880c4070275 /ractor.c
parent2db2fb9f6c742d5bd0019ccd11c7a375e1b12c0b (diff)
mark default_rand
default_rand can points a Bignum seed, so it should be marked.
Diffstat (limited to 'ractor.c')
-rw-r--r--ractor.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/ractor.c b/ractor.c
index a5f22a4724..58f899e9ee 100644
--- a/ractor.c
+++ b/ractor.c
@@ -200,6 +200,11 @@ ractor_mark(void *ptr)
rb_gc_mark(th->self);
}
}
+
+ if (r->default_rand) {
+ void rb_default_rand_mark(void *); // random.c
+ rb_default_rand_mark(r->default_rand);
+ }
}
static void
@@ -1773,7 +1778,10 @@ rb_ractor_default_rand(void *ptr)
{
if (rb_ractor_main_p()) {
static void *default_rnd;
- if (UNLIKELY(ptr != NULL)) default_rnd = ptr;
+ if (UNLIKELY(ptr != NULL)) {
+ rb_ractor_t *cr = GET_RACTOR();
+ cr->default_rand = default_rnd = ptr;
+ }
return default_rnd;
}
else {