1#ifndef INTERNAL_THREAD_H
2#define INTERNAL_THREAD_H
17#define COVERAGE_INDEX_LINES 0
18#define COVERAGE_INDEX_BRANCHES 1
19#define COVERAGE_TARGET_LINES 1
20#define COVERAGE_TARGET_BRANCHES 2
21#define COVERAGE_TARGET_METHODS 4
22#define COVERAGE_TARGET_ONESHOT_LINES 8
24VALUE rb_obj_is_mutex(VALUE obj);
25VALUE rb_suppress_tracing(VALUE (*func)(VALUE), VALUE arg);
26void rb_thread_execute_interrupts(VALUE th);
27VALUE rb_get_coverages(
void);
28int rb_get_coverage_mode(
void);
29VALUE rb_default_coverage(
int);
30VALUE rb_thread_shield_new(
void);
31VALUE rb_thread_shield_wait(VALUE
self);
32VALUE rb_thread_shield_release(VALUE
self);
33VALUE rb_thread_shield_destroy(VALUE
self);
34int rb_thread_to_be_killed(VALUE thread);
35void rb_mutex_allow_trap(VALUE
self,
int val);
36VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);
37VALUE rb_mutex_owned_p(VALUE
self);
39int rb_thread_wait_for_single_fd(
int fd,
int events,
struct timeval * timeout);
41RUBY_SYMBOL_EXPORT_BEGIN
43VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func,
void *data1,
int fd);
46int ruby_thread_has_gvl_p(
void);
49MJIT_SYMBOL_EXPORT_BEGIN
50int rb_threadptr_execute_interrupts(
struct rb_thread_struct *th,
int blocking_timing);