Lines Matching refs:th

172     VALUE (*call)(struct rb_thread_struct *th, struct rb_control_frame_struct *cfp, struct rb_call_info_struct *ci);
489 struct rb_thread_struct *th;
789 #define RUBY_VM_END_CONTROL_FRAME(th) \
790 ((rb_control_frame_t *)((th)->stack + (th)->stack_size))
793 #define RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp) \
794 (!RUBY_VM_VALID_CONTROL_FRAME_P((cfp), RUBY_VM_END_CONTROL_FRAME(th)))
811 extern void rb_vmdebug_debug_print_pre(rb_thread_t *th, rb_control_frame_t *cfp);
812 extern void rb_vmdebug_debug_print_post(rb_thread_t *th, rb_control_frame_t *cfp);
827 int rb_thread_method_id_and_class(rb_thread_t *th, ID *idp, VALUE *klassp);
829 VALUE rb_vm_invoke_proc(rb_thread_t *th, rb_proc_t *proc,
831 VALUE rb_vm_make_proc(rb_thread_t *th, const rb_block_t *block, VALUE klass);
832 VALUE rb_vm_make_env_object(rb_thread_t *th, rb_control_frame_t *cfp);
833 VALUE rb_binding_new_with_cfp(rb_thread_t *th, const rb_control_frame_t *src_cfp);
836 VALUE rb_vm_call(rb_thread_t *th, VALUE recv, VALUE id, int argc,
849 rb_control_frame_t *rb_vm_get_ruby_level_next_cfp(rb_thread_t *th, const rb_control_frame_t *cfp);
850 rb_control_frame_t *rb_vm_get_binding_creatable_next_cfp(rb_thread_t *th, const rb_control_frame_t *cfp);
853 void rb_vm_stack_to_heap(rb_thread_t *th);
854 void ruby_thread_init_stack(rb_thread_t *th);
857 void rb_gc_mark_machine_stack(rb_thread_t *th);
885 rb_thread_t *th = ruby_current_thread;
887 if (UNLIKELY(th->passed_ci != 0)) {
888 void vm_call_cfunc_push_frame(rb_thread_t *th);
889 vm_call_cfunc_push_frame(th);
892 return th;
895 #define rb_thread_set_current_raw(th) (void)(ruby_current_thread = (th))
896 #define rb_thread_set_current(th) do { \
897 if ((th)->vm->running_thread != (th)) { \
898 (th)->running_time_us = 0; \
900 rb_thread_set_current_raw(th); \
901 (th)->vm->running_thread = (th); \
915 #define RUBY_VM_SET_TIMER_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TIMER_INTERRUPT_MASK)
916 #define RUBY_VM_SET_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, PENDING_INTERRUPT_MASK)
917 #define RUBY_VM_SET_FINALIZER_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, FINALIZER_INTERRUPT_MASK)
918 #define RUBY_VM_SET_TRAP_INTERRUPT(th) ATOMIC_OR((th)->interrupt_flag, TRAP_INTERRUPT_MASK)
919 #define RUBY_VM_INTERRUPTED(th) ((th)->interrupt_flag & ~(th)->interrupt_mask & (PENDING_INTERRUPT_MASK|TRAP_INTERRUPT_MASK))
920 #define RUBY_VM_INTERRUPTED_ANY(th) ((th)->interrupt_flag & ~(th)->interrupt_mask)
923 void rb_signal_exec(rb_thread_t *th, int sig);
925 void rb_threadptr_signal_raise(rb_thread_t *th, int sig);
926 void rb_threadptr_signal_exit(rb_thread_t *th);
928 void rb_threadptr_interrupt(rb_thread_t *th);
929 void rb_threadptr_unlock_all_locking_mutexes(rb_thread_t *th);
930 void rb_threadptr_pending_interrupt_clear(rb_thread_t *th);
931 void rb_threadptr_pending_interrupt_enque(rb_thread_t *th, VALUE v);
932 int rb_threadptr_pending_interrupt_active_p(rb_thread_t *th);
937 #define RUBY_VM_CHECK_INTS_BLOCKING(th) do { \
938 if (UNLIKELY(!rb_threadptr_pending_interrupt_empty_p(th))) { \
939 th->pending_interrupt_queue_checked = 0; \
940 RUBY_VM_SET_INTERRUPT(th); \
941 rb_threadptr_execute_interrupts(th, 1); \
943 else if (UNLIKELY(RUBY_VM_INTERRUPTED_ANY(th))) { \
944 rb_threadptr_execute_interrupts(th, 1); \
948 #define RUBY_VM_CHECK_INTS(th) do { \
949 if (UNLIKELY(RUBY_VM_INTERRUPTED_ANY(th))) { \
950 rb_threadptr_execute_interrupts(th, 0); \
957 rb_thread_t *th;
976 if (((th)->event_hooks.events | (th)->vm->event_hooks.events) & (flag_)) { \
979 trace_arg.th = (th_); \
980 trace_arg.cfp = (trace_arg.th)->cfp; \