mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
relax dependency
vm_sync.h does not need to include vm_core.h and ractor_pub.h.
This commit is contained in:
parent
f7ccb8dd88
commit
74ddac1c82
Notes:
git
2020-09-15 00:05:42 +09:00
3 changed files with 13 additions and 9 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
14
vm_sync.h
14
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
|
||||
|
|
Loading…
Add table
Reference in a new issue