Go to the source code of this file.
|
#define | LOCATION_ARGS void |
|
#define | LOCATION_PARAMS |
|
#define | APPEND_LOCATION_ARGS |
|
#define | APPEND_LOCATION_PARAMS |
|
#define | RB_VM_LOCKED_P() rb_vm_locked_p() |
|
#define | RB_VM_LOCK() rb_vm_lock(__FILE__, __LINE__) |
|
#define | RB_VM_UNLOCK() rb_vm_unlock(__FILE__, __LINE__) |
|
#define | RB_VM_LOCK_ENTER_CR_LEV(cr, levp) rb_vm_lock_enter_cr(cr, levp, __FILE__, __LINE__) |
|
#define | RB_VM_LOCK_LEAVE_CR_LEV(cr, levp) rb_vm_lock_leave_cr(cr, levp, __FILE__, __LINE__) |
|
#define | RB_VM_LOCK_ENTER_LEV(levp) rb_vm_lock_enter(levp, __FILE__, __LINE__) |
|
#define | RB_VM_LOCK_LEAVE_LEV(levp) rb_vm_lock_leave(levp, __FILE__, __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); } |
|
#define | RB_VM_LOCK_ENTER_LEV_NB(levp) rb_vm_lock_enter_nb(levp, __FILE__, __LINE__) |
|
#define | RB_VM_LOCK_ENTER_NO_BARRIER() { unsigned int _lev; RB_VM_LOCK_ENTER_LEV_NB(&_lev); |
|
#define | RB_VM_LOCK_LEAVE_NO_BARRIER() RB_VM_LOCK_LEAVE_LEV(&_lev); } |
|
#define | ASSERT_vm_locking() |
|
#define | ASSERT_vm_unlocking() |
|
◆ APPEND_LOCATION_ARGS
#define APPEND_LOCATION_ARGS |
◆ APPEND_LOCATION_PARAMS
#define APPEND_LOCATION_PARAMS |
◆ ASSERT_vm_locking
#define ASSERT_vm_locking |
( |
| ) |
|
◆ ASSERT_vm_unlocking
#define ASSERT_vm_unlocking |
( |
| ) |
|
◆ LOCATION_ARGS
#define LOCATION_ARGS void |
◆ LOCATION_PARAMS
◆ RB_VM_LOCK
#define RB_VM_LOCK |
( |
| ) |
rb_vm_lock(__FILE__, __LINE__) |
◆ RB_VM_LOCK_ENTER
◆ RB_VM_LOCK_ENTER_CR_LEV
#define RB_VM_LOCK_ENTER_CR_LEV |
( |
|
cr, |
|
|
|
levp |
|
) |
| rb_vm_lock_enter_cr(cr, levp, __FILE__, __LINE__) |
◆ RB_VM_LOCK_ENTER_LEV
#define RB_VM_LOCK_ENTER_LEV |
( |
|
levp | ) |
rb_vm_lock_enter(levp, __FILE__, __LINE__) |
◆ RB_VM_LOCK_ENTER_LEV_NB
#define RB_VM_LOCK_ENTER_LEV_NB |
( |
|
levp | ) |
rb_vm_lock_enter_nb(levp, __FILE__, __LINE__) |
◆ RB_VM_LOCK_ENTER_NO_BARRIER
◆ RB_VM_LOCK_LEAVE
◆ RB_VM_LOCK_LEAVE_CR_LEV
#define RB_VM_LOCK_LEAVE_CR_LEV |
( |
|
cr, |
|
|
|
levp |
|
) |
| rb_vm_lock_leave_cr(cr, levp, __FILE__, __LINE__) |
◆ RB_VM_LOCK_LEAVE_LEV
#define RB_VM_LOCK_LEAVE_LEV |
( |
|
levp | ) |
rb_vm_lock_leave(levp, __FILE__, __LINE__) |
◆ RB_VM_LOCK_LEAVE_NO_BARRIER
◆ RB_VM_LOCKED_P
◆ RB_VM_UNLOCK
#define RB_VM_UNLOCK |
( |
| ) |
rb_vm_unlock(__FILE__, __LINE__) |
◆ rb_vm_barrier()
void rb_vm_barrier |
( |
void |
| ) |
|
Definition at line 229 of file vm_sync.c.
References ASSERT_vm_locking, rb_vm_struct::barrier_cnt, rb_vm_struct::barrier_cond, rb_ractor_struct::barrier_wait_cond, rb_vm_struct::barrier_waiting, rb_vm_struct::blocking_cnt, rb_vm_struct::cnt, rb_vm_struct::lock_owner, rb_vm_struct::ractor, RB_DEBUG_COUNTER_INC, rb_native_cond_signal(), rb_ractor_vm_barrier_interrupt_running_thread(), rb_vm_cond_wait(), rb_vm_ractor_blocking_cnt_dec(), rb_vm_ractor_blocking_cnt_inc(), RUBY_DEBUG_LOG, rb_vm_struct::set, rb_vm_struct::sync, and VM_ASSERT.
◆ rb_vm_lock_body()
◆ rb_vm_lock_enter_body()
void rb_vm_lock_enter_body |
( |
unsigned int *lev |
APPEND_LOCATION_ARGS | ) |
|
◆ rb_vm_lock_enter_body_cr()
void rb_vm_lock_enter_body_cr |
( |
struct rb_ractor_struct * |
cr, |
|
|
unsigned int *lev |
APPEND_LOCATION_ARGS |
|
) |
| |
◆ rb_vm_lock_enter_body_nb()
void rb_vm_lock_enter_body_nb |
( |
unsigned int *lev |
APPEND_LOCATION_ARGS | ) |
|
◆ rb_vm_lock_leave_body()
void rb_vm_lock_leave_body |
( |
unsigned int *lev |
APPEND_LOCATION_ARGS | ) |
|
◆ rb_vm_locked_p()
bool rb_vm_locked_p |
( |
void |
| ) |
|
◆ rb_vm_unlock_body()
◆ ruby_single_main_ractor