From 3c4d788bfe7ea2fe2e9b6c0246237be45a41a12e Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Sat, 8 Jul 2023 01:47:06 +0900 Subject: [PATCH] macos: symbols for `rb_execution_context_t` should be internal --- ractor_core.h | 6 +++--- thread_pthread.h | 24 +++++++++++------------- vm.c | 21 +++++++++++---------- 3 files changed, 25 insertions(+), 26 deletions(-) diff --git a/ractor_core.h b/ractor_core.h index 1fd8da0d84ed5b..38aded15074bef 100644 --- a/ractor_core.h +++ b/ractor_core.h @@ -310,11 +310,11 @@ static inline void rb_ractor_set_current_ec_(rb_ractor_t *cr, rb_execution_context_t *ec, const char *file, int line) { #ifdef RB_THREAD_LOCAL_SPECIFIER - #ifdef __APPLE__ +# ifdef __APPLE__ rb_current_ec_set(ec); - #else +# else ruby_current_ec = ec; - #endif +# endif #else native_tls_set(ruby_current_ec_key, ec); #endif diff --git a/thread_pthread.h b/thread_pthread.h index bf97c7a0ee7df4..10d3fcd9280c17 100644 --- a/thread_pthread.h +++ b/thread_pthread.h @@ -90,19 +90,18 @@ struct rb_thread_sched { int wait_yield; }; -RUBY_SYMBOL_EXPORT_BEGIN #ifdef RB_THREAD_LOCAL_SPECIFIER - # ifdef __APPLE__ - // on Darwin, TLS can not be accessed across .so - struct rb_execution_context_struct *rb_current_ec(void); - void rb_current_ec_set(struct rb_execution_context_struct *); - # else - RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec; - - // for RUBY_DEBUG_LOG() - RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER rb_atomic_t ruby_nt_serial; - #define RUBY_NT_SERIAL 1 - # endif +# ifdef __APPLE__ +// on Darwin, TLS can not be accessed across .so +struct rb_execution_context_struct *rb_current_ec(void); +void rb_current_ec_set(struct rb_execution_context_struct *); +# else +RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec; + +// for RUBY_DEBUG_LOG() +RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER rb_atomic_t ruby_nt_serial; +#define RUBY_NT_SERIAL 1 +# endif #else typedef pthread_key_t native_tls_key_t; @@ -123,6 +122,5 @@ native_tls_set(native_tls_key_t key, void *ptr) RUBY_EXTERN native_tls_key_t ruby_current_ec_key; #endif -RUBY_SYMBOL_EXPORT_END #endif /* RUBY_THREAD_PTHREAD_H */ diff --git a/vm.c b/vm.c index f94be0018792f2..88aba3433a6521 100644 --- a/vm.c +++ b/vm.c @@ -446,16 +446,17 @@ RB_THREAD_LOCAL_SPECIFIER rb_atomic_t ruby_nt_serial; #endif #ifdef __APPLE__ - rb_execution_context_t * - rb_current_ec(void) - { - return ruby_current_ec; - } - void - rb_current_ec_set(rb_execution_context_t *ec) - { - ruby_current_ec = ec; - } +rb_execution_context_t * +rb_current_ec(void) +{ + return ruby_current_ec; +} + +void +rb_current_ec_set(rb_execution_context_t *ec) +{ + ruby_current_ec = ec; +} #endif #else