Use noinline version of accessing current ec

On universal.arm64e-darwin22 with clang 15.0.0 (I didn't check
details yet) accessing `ruby_current_ec` directly causes
assertion violation `VM_ASSERT(ec == rb_current_ec_noinline())`
on `rb_current_execution_context()`, maybe because TLS accessing
issue.
This commit is contained in:
Koichi Sasada 2023-12-24 14:33:14 +09:00
Родитель 541371e286
Коммит a87ae242bb
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -134,7 +134,7 @@ struct rb_thread_sched {
# ifdef __APPLE__
// on Darwin, TLS can not be accessed across .so
struct rb_execution_context_struct *rb_current_ec(void);
NOINLINE(struct rb_execution_context_struct *rb_current_ec(void));
# else
RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec;