1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Moved locking VM to an atomic operation

This commit is contained in:
Nobuyoshi Nakada 2021-03-07 10:24:03 +09:00
parent 2148ee78a5
commit 983f6d0f2a
No known key found for this signature in database
GPG key ID: 7CD2805BFA3770C6

View file

@ -290,7 +290,7 @@ RACTOR_PTR(VALUE self)
return r;
}
static uint32_t ractor_last_id;
static rb_atomic_t ractor_last_id;
#if RACTOR_CHECK_MODE > 0
MJIT_FUNC_EXPORTED uint32_t
@ -1399,11 +1399,7 @@ ractor_next_id(void)
{
uint32_t id;
RB_VM_LOCK();
{
id = ++ractor_last_id;
}
RB_VM_UNLOCK();
id = (uint32_t)(RUBY_ATOMIC_FETCH_ADD(ractor_last_id, 1) + 1);
return id;
}