Ruby: rb_thread_struct Struct Reference

Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)

Public Types | Public Member Functions | Data Fields
rb_thread_struct Struct Reference

`#include <vm_core.h>`

## Public Types
enum | thread_invoke_type { thread_invoke_type_none = 0 , thread_invoke_type_proc , thread_invoke_type_ractor_proc , thread_invoke_type_func }

## Public Member Functions
| BITFIELD (enum rb_thread_status, status, 2)

## Data Fields
struct list_node | lt_node
VALUE | self
rb_ractor_t * | ractor
rb_vm_t * | vm
rb_execution_context_t * | ec
VALUE | last_status
struct rb_calling_info * | calling
VALUE | top_self
VALUE | top_wrapper
rb_nativethread_id_t | thread_id
unsigned int | to_kill: 1
unsigned int | abort_on_exception: 1
unsigned int | report_on_exception: 1
unsigned int | pending_interrupt_queue_checked: 1
int8_t | priority
uint32_t | running_time_us
native_thread_data_t | native_thread_data
void * | blocking_region_buffer
VALUE | thgroup
VALUE | value
VALUE | pending_interrupt_queue
VALUE | pending_interrupt_mask_stack
rb_nativethread_lock_t | interrupt_lock
struct rb_unblock_callback | unblock
VALUE | locking_mutex
struct rb_mutex_struct * | keeping_mutexes
struct rb_waiting_list * | join_list
union {
struct {
VALUE proc
VALUE args
int kw_splat
} proc
struct {
VALUE(* func )(void *)
void * arg
} func
} | invoke_arg
enum rb_thread_struct::thread_invoke_type | invoke_type
VALUE | stat_insn_usage
rb_fiber_t * | root_fiber
rb_jmpbuf_t | root_jmpbuf
VALUE | scheduler
unsigned | blocking
VALUE | name
struct rb_ext_config | ext_config

## Detailed Description

Definition at line 935 of file vm_core.h.

## Member Enumeration Documentation

## ◆ thread_invoke_type

enum rb_thread_struct::thread_invoke_type

Enumerator
thread_invoke_type_none |
thread_invoke_type_proc |
thread_invoke_type_ractor_proc |
thread_invoke_type_func |

Definition at line 1001 of file vm_core.h.

## Member Function Documentation

## ◆ BITFIELD()

rb_thread_struct::BITFIELD | ( | enum | rb_thread_status,
|  | status | ,
|  | 2 |
| ) |  |

## Field Documentation

## ◆ abort_on_exception

unsigned int rb_thread_struct::abort_on_exception

Definition at line 960 of file vm_core.h.

## ◆ arg

void* rb_thread_struct::arg

Definition at line 997 of file vm_core.h.

## ◆ args

VALUE rb_thread_struct::args

Definition at line 992 of file vm_core.h.

## ◆ blocking

unsigned rb_thread_struct::blocking

Definition at line 1016 of file vm_core.h.

Referenced by rb_fiber_start().

## ◆ blocking_region_buffer

void* rb_thread_struct::blocking_region_buffer

Definition at line 967 of file vm_core.h.

Referenced by rb_thread_call_with_gvl(), and ruby_thread_has_gvl_p().

## ◆ calling

struct rb_calling_info* rb_thread_struct::calling

Definition at line 946 of file vm_core.h.

## ◆ ec

rb_execution_context_t* rb_thread_struct::ec

Definition at line 941 of file vm_core.h.

Referenced by Init_BareVM(), Init_Cont(), Init_VM(), rb_eval_string_wrap(), rb_fiber_reset_root_local_storage(), rb_fiber_start(), rb_ractor_terminate_interrupt_main_thread(), rb_thread_fd_select(), rb_thread_sleep_interruptible(), rb_thread_terminate_all(), rb_threadptr_execute_interrupts(), rb_threadptr_root_fiber_release(), rb_threadptr_root_fiber_setup(), rb_threadptr_root_fiber_terminate(), rb_uninterruptible(), rb_vm_each_stack_value(), rb_vm_set_progname(), rb_vmdebug_stack_dump_th(), and rb_vmdebug_thread_dump_state().

## ◆ ext_config

struct rb_ext_config rb_thread_struct::ext_config

Definition at line 1021 of file vm_core.h.

## ◆ func [1/2]

VALUE(* rb_thread_struct::func) (void *)

Definition at line 996 of file vm_core.h.

## ◆ [2/2]

struct { ... } rb_thread_struct::func

## ◆ interrupt_lock

rb_nativethread_lock_t rb_thread_struct::interrupt_lock

Definition at line 982 of file vm_core.h.

Referenced by Init_Thread_Mutex().

## ◆

union { ... } rb_thread_struct::invoke_arg

## ◆ invoke_type

enum rb_thread_struct::thread_invoke_type rb_thread_struct::invoke_type

## ◆ join_list

struct rb_waiting_list* rb_thread_struct::join_list

Definition at line 987 of file vm_core.h.

## ◆ keeping_mutexes

struct rb_mutex_struct* rb_thread_struct::keeping_mutexes

Definition at line 985 of file vm_core.h.

Referenced by rb_threadptr_unlock_all_locking_mutexes().

## ◆ kw_splat

int rb_thread_struct::kw_splat

Definition at line 993 of file vm_core.h.

## ◆ last_status

VALUE rb_thread_struct::last_status

Definition at line 943 of file vm_core.h.

## ◆ locking_mutex

VALUE rb_thread_struct::locking_mutex

Definition at line 984 of file vm_core.h.

## ◆ lt_node

struct list_node rb_thread_struct::lt_node

Definition at line 936 of file vm_core.h.

Referenced by rb_ractor_living_threads_insert(), and rb_ractor_living_threads_remove().

## ◆ name

VALUE rb_thread_struct::name

Definition at line 1019 of file vm_core.h.

## ◆ native_thread_data

native_thread_data_t rb_thread_struct::native_thread_data

Definition at line 966 of file vm_core.h.

## ◆ pending_interrupt_mask_stack

VALUE rb_thread_struct::pending_interrupt_mask_stack

Definition at line 979 of file vm_core.h.

Referenced by Init_Thread(), and rb_uninterruptible().

## ◆ pending_interrupt_queue

VALUE rb_thread_struct::pending_interrupt_queue

Definition at line 978 of file vm_core.h.

Referenced by Init_Thread(), rb_threadptr_pending_interrupt_clear(), and rb_threadptr_pending_interrupt_enque().

## ◆ pending_interrupt_queue_checked

unsigned int rb_thread_struct::pending_interrupt_queue_checked

Definition at line 962 of file vm_core.h.

Referenced by Init_Thread(), and rb_threadptr_pending_interrupt_enque().

## ◆ priority

int8_t rb_thread_struct::priority

Definition at line 963 of file vm_core.h.

Referenced by rb_threadptr_execute_interrupts().

## ◆ proc [1/2]

VALUE rb_thread_struct::proc

Definition at line 991 of file vm_core.h.

## ◆ [2/2]

struct { ... } rb_thread_struct::proc

## ◆ ractor

rb_ractor_t* rb_thread_struct::ractor

Definition at line 938 of file vm_core.h.

Referenced by Init_BareVM(), Init_Thread(), Init_VM(), rb_nogvl(), rb_thread_terminate_all(), rb_threadptr_root_fiber_release(), and rb_vm_set_progname().

## ◆ report_on_exception

unsigned int rb_thread_struct::report_on_exception

Definition at line 961 of file vm_core.h.

## ◆ root_fiber

rb_fiber_t* rb_thread_struct::root_fiber

Definition at line 1012 of file vm_core.h.

Referenced by rb_fiber_reset_root_local_storage(), and rb_threadptr_root_fiber_release().

## ◆ root_jmpbuf

rb_jmpbuf_t rb_thread_struct::root_jmpbuf

Definition at line 1013 of file vm_core.h.

## ◆ running_time_us

uint32_t rb_thread_struct::running_time_us

Definition at line 964 of file vm_core.h.

Referenced by rb_threadptr_execute_interrupts().

## ◆ scheduler

VALUE rb_thread_struct::scheduler

Definition at line 1015 of file vm_core.h.

Referenced by rb_scheduler_get(), and rb_scheduler_set().

## ◆ self

VALUE rb_thread_struct::self

Definition at line 937 of file vm_core.h.

Referenced by Init_VM(), rb_fiber_start(), rb_ractor_thread_list(), rb_tracepoint_disable(), and rb_tracepoint_enable().

## ◆ stat_insn_usage

VALUE rb_thread_struct::stat_insn_usage

Definition at line 1009 of file vm_core.h.

## ◆ thgroup

VALUE rb_thread_struct::thgroup

Definition at line 969 of file vm_core.h.

Referenced by Init_Thread().

## ◆ thread_id

rb_nativethread_id_t rb_thread_struct::thread_id

Definition at line 953 of file vm_core.h.

Referenced by rb_vmdebug_stack_dump_all_threads().

## ◆ to_kill

unsigned int rb_thread_struct::to_kill

Definition at line 959 of file vm_core.h.

Referenced by rb_thread_kill(), and rb_thread_to_be_killed().

## ◆ top_self

VALUE rb_thread_struct::top_self

Definition at line 949 of file vm_core.h.

Referenced by Init_VM(), and rb_eval_string_wrap().

## ◆ top_wrapper

VALUE rb_thread_struct::top_wrapper

Definition at line 950 of file vm_core.h.

Referenced by Init_VM(), rb_eval_string_wrap(), and rb_set_end_proc().

## ◆ unblock

struct rb_unblock_callback rb_thread_struct::unblock

Definition at line 983 of file vm_core.h.

Referenced by rb_thread_call_with_gvl().

## ◆ value

VALUE rb_thread_struct::value

Definition at line 970 of file vm_core.h.

## ◆ vm

rb_vm_t* rb_thread_struct::vm

Definition at line 939 of file vm_core.h.

Referenced by Init_BareVM(), Init_Cont(), Init_Thread_Mutex(), Init_VM(), rb_notify_fd_close(), rb_ractor_living_threads_insert(), rb_ractor_living_threads_remove(), rb_thread_kill(), rb_thread_wait_for_single_fd(), rb_threadptr_execute_interrupts(), rb_threadptr_signal_exit(), and rb_threadptr_signal_raise().

The documentation for this struct was generated from the following file:

- vm_core.h