diff options
author | Koichi Sasada <[email protected]> | 2022-05-24 16:39:45 +0900 |
---|---|---|
committer | Koichi Sasada <[email protected]> | 2022-05-24 17:50:49 +0900 |
commit | 08cee2bf804d22dc51002b0df023aea7ec044d8d (patch) | |
tree | 9e9d8e959858bec1c0588f939e8c8be4ef9dc3b4 | |
parent | 78785fb99041521fc5da01ffa6ab3f4f3936ce06 (diff) |
altstack is native thread's attr
Move th->altstack to th->nt->altstack.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/5936
-rw-r--r-- | thread_pthread.c | 4 | ||||
-rw-r--r-- | thread_pthread.h | 4 | ||||
-rw-r--r-- | vm_core.h | 10 |
3 files changed, 9 insertions, 9 deletions
diff --git a/thread_pthread.c b/thread_pthread.c index 451f47e07f..5c181556b9 100644 --- a/thread_pthread.c +++ b/thread_pthread.c @@ -1052,7 +1052,7 @@ static void * thread_start_func_1(void *th_ptr) { rb_thread_t *th = th_ptr; - RB_ALTSTACK_INIT(void *altstack, th->altstack); + RB_ALTSTACK_INIT(void *altstack, th->nt->altstack); #if USE_THREAD_CACHE thread_start: #endif @@ -1208,7 +1208,7 @@ native_thread_create(rb_thread_t *th) const size_t space = space_size(stack_size); #ifdef USE_SIGALTSTACK - th->altstack = rb_allocate_sigaltstack(); + th->nt->altstack = rb_allocate_sigaltstack(); #endif th->ec->machine.stack_maxsize = stack_size - space; diff --git a/thread_pthread.h b/thread_pthread.h index 8e8c1eb43d..ebca71b5cd 100644 --- a/thread_pthread.h +++ b/thread_pthread.h @@ -50,6 +50,10 @@ struct rb_native_thread { rb_nativethread_cond_t intr; /* th->interrupt_lock */ rb_nativethread_cond_t readyq; /* use sched->lock */ } cond; + +#ifdef USE_SIGALTSTACK + void *altstack; +#endif }; #undef except @@ -101,9 +101,6 @@ extern int ruby_assert_critical_section_entered; #include "vm_opts.h" #include "ruby/thread_native.h" -#include THREAD_IMPL_H - -#define RUBY_VM_THREAD_MODEL 2 /* * implementation selector of get_insn_info algorithm @@ -162,6 +159,9 @@ void *rb_register_sigaltstack(void *); # define RB_ALTSTACK(var) (0) #endif +#include THREAD_IMPL_H +#define RUBY_VM_THREAD_MODEL 2 + /*****************/ /* configuration */ /*****************/ @@ -1072,10 +1072,6 @@ typedef struct rb_thread_struct { VALUE name; struct rb_ext_config ext_config; - -#ifdef USE_SIGALTSTACK - void *altstack; -#endif } rb_thread_t; static inline unsigned int |