diff options
author | Koichi Sasada <[email protected]> | 2020-11-27 17:36:02 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2020-11-27 17:36:02 +0900 |
commit | 5496415d3165e57e3ade16238a4cc9ec2c3a81f6 (patch) | |
tree | 4dd8c176afc5b1e109281c4816c21880c4070275 /ractor.c | |
parent | 2db2fb9f6c742d5bd0019ccd11c7a375e1b12c0b (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.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -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 { |