Skip checking Ractor recursive locking
for an MJIT worker thread. We can't do it because its GET_EC() returns NULL.
This commit is contained in:
parent
29c9588e7e
commit
58c3c75fee
10
ractor.c
10
ractor.c
@ -40,7 +40,8 @@ static void
|
|||||||
ASSERT_ractor_unlocking(rb_ractor_t *r)
|
ASSERT_ractor_unlocking(rb_ractor_t *r)
|
||||||
{
|
{
|
||||||
#if RACTOR_CHECK_MODE > 0
|
#if RACTOR_CHECK_MODE > 0
|
||||||
if (r->locked_by == GET_RACTOR()->self) {
|
// GET_EC is NULL in an MJIT worker
|
||||||
|
if (GET_EC() != NULL && r->locked_by == GET_RACTOR()->self) {
|
||||||
rb_bug("recursive ractor locking");
|
rb_bug("recursive ractor locking");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -50,7 +51,8 @@ static void
|
|||||||
ASSERT_ractor_locking(rb_ractor_t *r)
|
ASSERT_ractor_locking(rb_ractor_t *r)
|
||||||
{
|
{
|
||||||
#if RACTOR_CHECK_MODE > 0
|
#if RACTOR_CHECK_MODE > 0
|
||||||
if (r->locked_by != GET_RACTOR()->self) {
|
// GET_EC is NULL in an MJIT worker
|
||||||
|
if (GET_EC() != NULL && r->locked_by != GET_RACTOR()->self) {
|
||||||
rp(r->locked_by);
|
rp(r->locked_by);
|
||||||
rb_bug("ractor lock is not acquired.");
|
rb_bug("ractor lock is not acquired.");
|
||||||
}
|
}
|
||||||
@ -66,7 +68,9 @@ ractor_lock(rb_ractor_t *r, const char *file, int line)
|
|||||||
rb_native_mutex_lock(&r->lock);
|
rb_native_mutex_lock(&r->lock);
|
||||||
|
|
||||||
#if RACTOR_CHECK_MODE > 0
|
#if RACTOR_CHECK_MODE > 0
|
||||||
r->locked_by = GET_RACTOR()->self;
|
if (GET_EC() != NULL) { // GET_EC is NULL in an MJIT worker
|
||||||
|
r->locked_by = GET_RACTOR()->self;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RUBY_DEBUG_LOG2(file, line, "locked r:%u%s", r->id, GET_RACTOR() == r ? " (self)" : "");
|
RUBY_DEBUG_LOG2(file, line, "locked r:%u%s", r->id, GET_RACTOR() == r ? " (self)" : "");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user