Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
thread.h
Go to the documentation of this file.
1#ifndef INTERNAL_THREAD_H /*-*-C-*-vi:se ft=c:*/
2#define INTERNAL_THREAD_H
12#include "ruby/ruby.h" /* for VALUE */
13#include "ruby/intern.h" /* for rb_blocking_function_t */
14
15struct rb_thread_struct; /* in vm_core.h */
16
17/* thread.c */
18#define COVERAGE_INDEX_LINES 0
19#define COVERAGE_INDEX_BRANCHES 1
20#define COVERAGE_TARGET_LINES 1
21#define COVERAGE_TARGET_BRANCHES 2
22#define COVERAGE_TARGET_METHODS 4
23#define COVERAGE_TARGET_ONESHOT_LINES 8
24
29int rb_get_coverage_mode(void);
36void rb_mutex_allow_trap(VALUE self, int val);
37VALUE rb_uninterruptible(VALUE (*b_proc)(VALUE), VALUE data);
39
40int rb_thread_wait_for_single_fd(int fd, int events, struct timeval * timeout);
41
42RUBY_SYMBOL_EXPORT_BEGIN
43/* Temporary. This API will be removed (renamed). */
45
46/* thread.c (export) */
47int ruby_thread_has_gvl_p(void); /* for ext/fiddle/closure.c */
48RUBY_SYMBOL_EXPORT_END
49
51int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing);
53
54#endif /* INTERNAL_THREAD_H */
#define MJIT_SYMBOL_EXPORT_END
Definition: dllexport.h:63
#define MJIT_SYMBOL_EXPORT_BEGIN
Definition: dllexport.h:62
VALUE rb_blocking_function_t(void *)
Definition: thread.h:60
VALUE rb_get_coverages(void)
Definition: thread.c:5773
void rb_mutex_allow_trap(VALUE self, int val)
Definition: thread_sync.c:621
int ruby_thread_has_gvl_p(void)
Definition: thread.c:1935
int rb_threadptr_execute_interrupts(struct rb_thread_struct *th, int blocking_timing)
Definition: thread.c:2424
VALUE rb_mutex_owned_p(VALUE self)
Definition: thread_sync.c:414
VALUE rb_suppress_tracing(VALUE(*func)(VALUE), VALUE arg)
Definition: vm_trace.c:418
int rb_thread_to_be_killed(VALUE thread)
Definition: thread.c:2720
VALUE rb_thread_shield_new(void)
Definition: thread.c:5072
VALUE rb_thread_shield_destroy(VALUE self)
Definition: thread.c:5128
VALUE rb_uninterruptible(VALUE(*b_proc)(VALUE), VALUE data)
Definition: thread.c:5874
VALUE rb_thread_shield_wait(VALUE self)
Definition: thread.c:5088
VALUE rb_default_coverage(int)
Definition: thread.c:5815
VALUE rb_thread_shield_release(VALUE self)
Definition: thread.c:5117
int rb_get_coverage_mode(void)
Definition: thread.c:5779
VALUE rb_obj_is_mutex(VALUE obj)
Definition: thread_sync.c:142
void rb_thread_execute_interrupts(VALUE th)
Definition: thread.c:2525
VALUE rb_thread_io_blocking_region(rb_blocking_function_t *func, void *data1, int fd)
Definition: thread.c:1815
int rb_thread_wait_for_single_fd(int fd, int events, struct timeval *timeout)
Definition: thread.c:4551
VALUE(* func)(void *)
Definition: vm_core.h:996
unsigned long VALUE
Definition: value.h:38