12monitor_mark(
void *
ptr)
20monitor_memsize(
const void *
ptr)
32monitor_alloc(
VALUE klass)
46monitor_ptr(
VALUE monitor)
60monitor_try_enter(
VALUE monitor)
64 if (!mc_owner_p(mc)) {
76monitor_enter(
VALUE monitor)
79 if (!mc_owner_p(mc)) {
89monitor_check_owner(
VALUE monitor)
92 if (!mc_owner_p(mc)) {
99monitor_exit(
VALUE monitor)
101 monitor_check_owner(monitor);
108 if (mc->
count == 0) {
116monitor_locked_p(
VALUE monitor)
123monitor_owned_p(
VALUE monitor)
130monitor_exit_for_cond(
VALUE monitor)
147monitor_wait_for_cond_body(
VALUE v)
157monitor_enter_for_cond(
VALUE v)
181 monitor_enter_for_cond, (
VALUE)&data);
206#ifdef HAVE_RB_EXT_RACTOR_SAFE
VALUE rb_fiber_current(void)
#define rb_define_method(klass, mid, func, arity)
Defines klass#mid.
void rb_gc_mark(VALUE ptr)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
void rb_raise(VALUE exc, const char *fmt,...)
void rb_bug(const char *fmt,...)
VALUE rb_ensure(VALUE(*b_proc)(VALUE), VALUE data1, VALUE(*e_proc)(VALUE), VALUE data2)
An equivalent to ensure clause.
VALUE rb_cObject
Object class.
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
void rb_ext_ractor_safe(bool flag)
VALUE rb_mutex_trylock(VALUE mutex)
VALUE rb_mutex_locked_p(VALUE mutex)
VALUE rb_mutex_unlock(VALUE mutex)
VALUE rb_mutex_lock(VALUE mutex)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
ID rb_intern(const char *)
VALUE rb_yield_values(int n,...)
#define RB_OBJ_WRITE(a, slot, b)
WB for new reference from ‘a’ to ‘b’.
#define RUBY_TYPED_DEFAULT_FREE
#define TypedData_Get_Struct(obj, type, data_type, sval)
@ RUBY_TYPED_FREE_IMMEDIATELY
@ RUBY_TYPED_WB_PROTECTED
#define TypedData_Make_Struct(klass, type, data_type, sval)
rb_atomic_t cnt[RUBY_NSIG]