diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-03-07 10:24:03 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-03-13 09:11:21 +0900 |
commit | 983f6d0f2af157ce2df9428a1701d8666877d0f5 (patch) | |
tree | 92afde481344411968f1b98eda2d94a1ece676bb /ractor.c | |
parent | 2148ee78a5bc5e679903f5839c66578bfcf94a39 (diff) |
Moved locking VM to an atomic operation
Diffstat (limited to 'ractor.c')
-rw-r--r-- | ractor.c | 8 |
1 files changed, 2 insertions, 6 deletions
@@ -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; } |