mark default_rand
default_rand can points a Bignum seed, so it should be marked.
This commit is contained in:
parent
2db2fb9f6c
commit
5496415d31
10
ractor.c
10
ractor.c
@ -200,6 +200,11 @@ ractor_mark(void *ptr)
|
|||||||
rb_gc_mark(th->self);
|
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
|
static void
|
||||||
@ -1773,7 +1778,10 @@ rb_ractor_default_rand(void *ptr)
|
|||||||
{
|
{
|
||||||
if (rb_ractor_main_p()) {
|
if (rb_ractor_main_p()) {
|
||||||
static void *default_rnd;
|
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;
|
return default_rnd;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user