diff options
author | Koichi Sasada <[email protected]> | 2020-09-04 05:51:55 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2020-09-04 14:18:48 +0900 |
commit | 3b0bcaf2872e5ab6d2475e9cd6dd5c374d93ae0b (patch) | |
tree | bec58277c5c1efe374236f8438661ad633740d13 /vm_sync.h | |
parent | 169b1d1aca0c26d38f8bbd25ecaf5fdb8015f5cf (diff) |
check multi_ractor mode at main_p
rb_ractor_main_p() need to access to the ractor pointer in TLS.
However it is slow operation so that we need to skip this check
if it is not multi-ractor mode (!ruby_multi_ractor).
This performance regression is pointed at
https://bugs.ruby-lang.org/issues/17100#note-27
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3513
Diffstat (limited to 'vm_sync.h')
-rw-r--r-- | vm_sync.h | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -4,6 +4,7 @@ #include "vm_core.h" #include "vm_debug.h" +#include "ractor_pub.h" #if USE_RUBY_DEBUG_LOG #define LOCATION_ARGS const char *file, int line @@ -26,8 +27,6 @@ void rb_vm_barrier(void); void rb_vm_cond_wait(rb_vm_t *vm, rb_nativethread_cond_t *cond); void rb_vm_cond_timedwait(rb_vm_t *vm, rb_nativethread_cond_t *cond, unsigned long msec); -extern bool ruby_multi_ractor; - static inline bool rb_multi_ractor_p(void) { |