diff options
author | nagachika <nagachika@ruby-lang.org> | 2021-11-24 12:03:46 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2021-11-24 12:03:46 +0900 |
commit | 7b3948750e1b1dd8cb271c0a7377b911bb3b8f1b (patch) | |
tree | b07091327cf0ca7a163a38d9c47932be32592b71 /vm_core.h | |
parent | 949af69408e44b69cc7437b58e8edbe3cd77c966 (diff) |
merge revision(s) e1b03b0c2b2449a7794f4701bab8b2382eb15116,007e439fe965871c73127928f7244ebb96a86e58:
Enable VM_ASSERT in --jit CIs (#4543)
---
.github/workflows/mjit.yml | 2 +-
ractor.c | 6 +++---
vm_core.h | 6 +++---
vm_method.c | 2 +-
4 files changed, 8 insertions(+), 8 deletions(-)
Do not expect ec on rb_vm_bugreport
because a SEGV might happen on an MJIT worker. As you can clearly see
from `if (vm && ec) {`, ec is not guaranteed to exist here.
---
vm_dump.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Diffstat (limited to 'vm_core.h')
-rw-r--r-- | vm_core.h | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1760,7 +1760,7 @@ RUBY_SYMBOL_EXPORT_END #define GET_VM() rb_current_vm() #define GET_RACTOR() rb_current_ractor() #define GET_THREAD() rb_current_thread() -#define GET_EC() rb_current_execution_context() +#define GET_EC() rb_current_execution_context(true) static inline rb_thread_t * rb_ec_thread_ptr(const rb_execution_context_t *ec) @@ -1794,7 +1794,7 @@ rb_ec_vm_ptr(const rb_execution_context_t *ec) } static inline rb_execution_context_t * -rb_current_execution_context(void) +rb_current_execution_context(bool expect_ec) { #ifdef RB_THREAD_LOCAL_SPECIFIER #if __APPLE__ @@ -1805,7 +1805,7 @@ rb_current_execution_context(void) #else rb_execution_context_t *ec = native_tls_get(ruby_current_ec_key); #endif - VM_ASSERT(ec != NULL); + VM_ASSERT(!expect_ec || ec != NULL); return ec; } |