From 74ddac1c822697b442646f433d60e2c099db3c3b Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Fri, 11 Sep 2020 18:30:27 +0900 Subject: [PATCH] relax dependency vm_sync.h does not need to include vm_core.h and ractor_pub.h. --- vm_core.h | 4 ++++ vm_sync.c | 4 +--- vm_sync.h | 14 ++++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/vm_core.h b/vm_core.h index 1d869617b6..88dc905a77 100644 --- a/vm_core.h +++ b/vm_core.h @@ -1838,6 +1838,10 @@ void rb_fiber_close(rb_fiber_t *fib); void Init_native_thread(rb_thread_t *th); int rb_vm_check_ints_blocking(rb_execution_context_t *ec); +// vm_sync.h +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); + #define RUBY_VM_CHECK_INTS(ec) rb_vm_check_ints(ec) static inline void rb_vm_check_ints(rb_execution_context_t *ec) diff --git a/vm_sync.c b/vm_sync.c index d5b25e5221..e3d0ffed15 100644 --- a/vm_sync.c +++ b/vm_sync.c @@ -12,7 +12,7 @@ vm_locked(rb_vm_t *vm) return vm->ractor.sync.lock_owner == GET_RACTOR(); } -#if VM_CHECK_MODE > 0 +#if RUBY_DEBUG > 0 void ASSERT_vm_locking(void) { @@ -21,9 +21,7 @@ ASSERT_vm_locking(void) VM_ASSERT(vm_locked(vm)); } } -#endif -#if VM_CHECK_MODE > 0 void ASSERT_vm_unlocking(void) { diff --git a/vm_sync.h b/vm_sync.h index f601143416..2e174bf867 100644 --- a/vm_sync.h +++ b/vm_sync.h @@ -2,9 +2,8 @@ #ifndef RUBY_VM_SYNC_H #define RUBY_VM_SYNC_H -#include "vm_core.h" #include "vm_debug.h" -#include "ractor_pub.h" +RUBY_EXTERN bool ruby_multi_ractor; #if USE_RUBY_DEBUG_LOG #define LOCATION_ARGS const char *file, int line @@ -24,15 +23,18 @@ void rb_vm_unlock_body(LOCATION_ARGS); void rb_vm_lock_enter_body(unsigned int *lev APPEND_LOCATION_ARGS); void rb_vm_lock_leave_body(unsigned int *lev APPEND_LOCATION_ARGS); 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); + +#if RUBY_DEBUG +// GET_VM() +#include "vm_core.h" +#endif static inline bool rb_multi_ractor_p(void) { if (LIKELY(!ruby_multi_ractor)) { // 0 on boot time. - VM_ASSERT(GET_VM()->ractor.cnt <= 1); + RUBY_ASSERT(GET_VM()->ractor.cnt <= 1); return false; } else { @@ -84,7 +86,7 @@ rb_vm_lock_leave(unsigned int *lev, const char *file, int line) #define RB_VM_LOCK_ENTER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV(&_lev); #define RB_VM_LOCK_LEAVE() RB_VM_LOCK_LEAVE_LEV(&_lev); } -#if VM_CHECK_MODE > 0 +#if RUBY_DEBUG > 0 void ASSERT_vm_locking(void); void ASSERT_vm_unlocking(void); #else -- GitLab