Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

eval.c File Reference

#include "ruby.h"
#include "node.h"
#include "env.h"
#include "util.h"
#include "rubysig.h"
#include <stdlib.h>
#include <stdio.h>
#include <setjmp.h>
#include "st.h"
#include "dln.h"
#include <alloca.h>
#include <stdarg.h>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>
#include <errno.h>
#include <sys/select.h>
#include <sys/stat.h>

Go to the source code of this file.

Data Structures

struct  BLOCK
struct  cache_entry
struct  end_proc_data
struct  event_hook
struct  iter
struct  METHOD
struct  tag
struct  thgroup
struct  thread
struct  thread_status_t

Defines

#define EXIT_SUCCESS   0
#define EXIT_FAILURE   1
#define va_init_list(a, b)   va_start(a,b)
#define ruby_setjmp(env)   _setjmp(env)
#define ruby_longjmp(env, val)   _longjmp(env,val)
#define SCOPE_PUBLIC   0
#define SCOPE_PRIVATE   1
#define SCOPE_PROTECTED   2
#define SCOPE_MODFUNC   5
#define SCOPE_MASK   7
#define SCOPE_SET(f)   (scope_vmode=(f))
#define SCOPE_TEST(f)   (scope_vmode&(f))
#define CACHE_SIZE   0x800
#define CACHE_MASK   0x7ff
#define EXPR1(c, m)   ((((c)>>3)^(m))&CACHE_MASK)
#define NOEX_TAINTED   8
#define NOEX_SAFE(n)   ((n) >> 4)
#define NOEX_WITH(n, v)   ((n) | (v) << 4)
#define NOEX_WITH_SAFE(n)   NOEX_WITH(n, ruby_safe_level)
#define PUSH_FRAME()
#define POP_FRAME()
#define BLOCK_D_SCOPE   1
#define BLOCK_LAMBDA   2
#define PUSH_BLOCK(v, b)
#define POP_BLOCK()
#define PUSH_VARS()
#define POP_VARS()
#define DVAR_DONT_RECYCLE   FL_USER2
#define ITER_NOT   0
#define ITER_PRE   1
#define ITER_CUR   2
#define ITER_PAS   3
#define PUSH_ITER(i)
#define POP_ITER()
#define PUSH_TAG(ptag)
#define PROT_NONE   Qfalse
#define PROT_THREAD   Qtrue
#define PROT_FUNC   INT2FIX(0)
#define PROT_LOOP   INT2FIX(1)
#define PROT_LAMBDA   INT2FIX(2)
#define PROT_YIELD   INT2FIX(3)
#define EXEC_TAG()   (FLUSH_REGISTER_WINDOWS, ruby_setjmp(prot_tag->buf))
#define JUMP_TAG(st)
#define POP_TAG()
#define TAG_DST()   (_tag.dst == (VALUE)ruby_frame->uniq)
#define TAG_RETURN   0x1
#define TAG_BREAK   0x2
#define TAG_NEXT   0x3
#define TAG_RETRY   0x4
#define TAG_REDO   0x5
#define TAG_RAISE   0x6
#define TAG_THROW   0x7
#define TAG_FATAL   0x8
#define TAG_MASK   0xf
#define PUSH_CLASS(c)
#define POP_CLASS()
#define PUSH_CREF(c)   ruby_cref = NEW_NODE(NODE_CREF,(c),0,ruby_cref)
#define POP_CREF()   ruby_cref = ruby_cref->nd_next
#define PUSH_SCOPE()
#define POP_SCOPE()
#define YIELD_LAMBDA_CALL   1
#define YIELD_PROC_CALL   2
#define YIELD_PUBLIC_DEF   4
#define YIELD_FUNC_AVALUE   1
#define YIELD_FUNC_SVALUE   2
#define EXEC_EVENT_HOOK(event, node, self, id, klass)
#define SET_CURRENT_SOURCE()   ((void)0)
#define warn_print(x)   rb_write_error(x)
#define warn_print2(x, l)   rb_write_error2(x,l)
#define TRACE_MAX   (TRACE_HEAD+TRACE_TAIL+5)
#define TRACE_HEAD   8
#define TRACE_TAIL   5
#define ruby_cbase   (ruby_cref->nd_clss)
#define TMP_PROTECT   typedef int foobazzz
#define TMP_ALLOC(n)   ALLOCA_N(VALUE,n)
#define SETUP_ARGS0(anode, alen)
#define SETUP_ARGS(anode)   SETUP_ARGS0(anode, anode->nd_alen)
#define BEGIN_CALLARGS
#define END_CALLARGS
#define MATCH_DATA   *rb_svar(node->nd_cnt)
#define return_value(v)
#define RETURN(v)
#define VISI_CHECK(x, f)   (((x)&NOEX_MASK) == (f))
#define CSTAT_PRIV   1
#define CSTAT_PROT   2
#define CSTAT_VCALL   4
#define CSTAT_SUPER   8
#define IS_SOEXT(e)   (strcmp(e, ".so") == 0 || strcmp(e, ".o") == 0)
#define IS_DLEXT(e)   (strcmp(e, DLEXT) == 0)
#define PROC_TSHIFT   (FL_USHIFT+1)
#define PROC_TMASK   (FL_USER1|FL_USER2|FL_USER3)
#define PROC_TMAX   (PROC_TMASK >> PROC_TSHIFT)
#define SAFE_LEVEL_MAX   PROC_TMASK
#define WAIT_FD   (1<<0)
#define WAIT_SELECT   (1<<1)
#define WAIT_TIME   (1<<2)
#define WAIT_JOIN   (1<<3)
#define WAIT_PID   (1<<4)
#define DELAY_INFTY   1E30
#define THREAD_RAISED   0x200
#define THREAD_TERMINATING   0x400
#define THREAD_FLAGS_MASK   0x400
#define FOREACH_THREAD_FROM(f, x)   x = f; do { x = x->next;
#define END_FOREACH_FROM(f, x)   } while (x != f)
#define FOREACH_THREAD(x)   FOREACH_THREAD_FROM(curr_thread,x)
#define END_FOREACH(x)   END_FOREACH_FROM(curr_thread,x)
#define THREAD_COPY_STATUS(src, dst)
#define STACK(addr)   (th->stk_pos<(VALUE*)(addr) && (VALUE*)(addr)<th->stk_pos+th->stk_len)
#define ADJ(addr)   (void*)(STACK(addr)?(((VALUE*)(addr)-th->stk_pos)+th->stk_ptr):(VALUE*)(addr))
#define MARK_FRAME_ADJ(f)   mark_frame_adj(f, th)
#define RESTORE_NORMAL   1
#define RESTORE_FATAL   2
#define RESTORE_INTERRUPT   3
#define RESTORE_TRAP   4
#define RESTORE_RAISE   5
#define RESTORE_SIGNAL   6
#define RESTORE_EXIT   7
#define THREAD_SAVE_CONTEXT(th)
#define IA64_INIT(x)
#define THREAD_ALLOC(th)

Typedefs

typedef jmp_buf rb_jmpbuf_t
typedef threadrb_thread_t
typedef event_hook rb_event_hook_t

Enumerations

enum  thread_status { THREAD_TO_KILL, THREAD_RUNNABLE, THREAD_STOPPED, THREAD_KILLED }

Functions

VALUE proc_invoke (VALUE, VALUE, VALUE, VALUE)
VALUE rb_f_binding (VALUE)
void rb_f_END (void)
VALUE rb_f_block_given_p (void)
VALUE block_pass (VALUE, NODE *)
VALUE method_call (int, VALUE *, VALUE)
VALUE umethod_bind (VALUE, VALUE)
VALUE rb_mod_define_method (int, VALUE *, VALUE)
void rb_raise_jump (VALUE)
VALUE rb_make_exception (int argc, VALUE *argv)
VALUE safe_getter (void)
void safe_setter (VALUE val)
void rb_secure (int level)
void rb_secure_update (VALUE obj)
void rb_check_safe_obj (VALUE x)
void rb_check_safe_str (VALUE x)
void print_undef (VALUE, ID)
void rb_clear_cache ()
void rb_clear_cache_for_undef (VALUE klass, ID id)
void rb_clear_cache_by_id (ID id)
void rb_clear_cache_by_class (VALUE klass)
void rb_add_method (VALUE klass, ID mid, NODE *node, int noex)
void rb_define_alloc_func (VALUE klass, func)
void rb_undef_alloc_func (VALUE klass)
NODEsearch_method (VALUE klass, ID id, VALUE *origin)
NODErb_get_method_body (VALUE *klassp, ID *idp, int *noexp)
NODErb_method_node (VALUE klass, ID id)
void remove_method (VALUE klass, ID mid)
void rb_remove_method (VALUE klass, const char *name)
VALUE rb_mod_remove_method (int argc, VALUE *argv, VALUE mod)
void rb_disable_super (VALUE klass, const char *name)
void rb_enable_super (VALUE klass, const char *name)
void rb_export_method (VALUE klass, ID name, ID noex)
int rb_method_boundp (VALUE klass, ID id, int ex)
void rb_attr (VALUE klass, ID id, int read, int write, int ex)
RVarmapnew_dvar (ID id, VALUE value, struct RVarmap *prev)
VALUE rb_dvar_defined (ID id)
VALUE rb_dvar_curr (ID id)
VALUE rb_dvar_ref (ID id)
void rb_dvar_push (ID id, VALUE value)
void dvar_asgn_internal (ID id, VALUE value, int curr)
void dvar_asgn (ID id, VALUE value)
void dvar_asgn_curr (ID id, VALUE value)
VALUErb_svar (int cnt)
void scope_dup (struct SCOPE *)
VALUE rb_eval (VALUE, NODE *)
VALUE eval (VALUE, VALUE, VALUE, char *, int)
NODEcompile (VALUE, char *, int)
VALUE rb_yield_0 (VALUE, VALUE, VALUE, int, int)
VALUE rb_call (VALUE, VALUE, ID, int, const VALUE *, int)
VALUE module_setup (VALUE, NODE *)
VALUE massign (VALUE, NODE *, VALUE, int)
void assign (VALUE, NODE *, VALUE, int)
void call_trace_func (rb_event_t, NODE *, VALUE, ID, VALUE)
void ruby_set_current_source ()
void warn_printf (const char *fmt,...)
void error_pos ()
VALUE get_backtrace (VALUE info)
void set_backtrace (VALUE info, VALUE bt)
void error_print ()
void rb_call_inits (void)
void Init_stack (VALUE *)
void Init_heap (void)
void Init_ext (void)
void ruby_init ()
VALUE eval_node (VALUE self, NODE *node)
void rb_thread_cleanup (void)
void rb_thread_wait_other_threads (void)
int thread_set_raised ()
int thread_reset_raised ()
int sysexit_status (VALUE err)
int error_handle (int ex)
void ruby_options (int argc, char **argv)
void rb_exec_end_proc (void)
void ruby_finalize_0 ()
void ruby_finalize_1 ()
void ruby_finalize ()
int ruby_cleanup (int ex)
int ruby_exec_internal ()
void ruby_stop (int ex)
int ruby_exec ()
void ruby_run ()
void compile_error (char *at) const
VALUE rb_eval_string (char *str) const
VALUE rb_eval_string_protect (char *str, int *state) const
VALUE rb_eval_string_wrap (char *str, int *state) const
void localjump_error (const char *, VALUE, int)
void localjump_error (char *mesg, VALUE value, int reason) const
VALUE localjump_xvalue (VALUE exc)
VALUE localjump_reason (VALUE exc)
void jump_tag_but_local_jump (int, VALUE)
VALUE rb_eval_cmd (VALUE cmd, VALUE arg, int level)
VALUE ev_const_defined (NODE *cref, ID id, VALUE self)
VALUE ev_const_get (NODE *cref, ID id, VALUE self)
VALUE cvar_cbase ()
VALUE rb_mod_nesting ()
VALUE rb_mod_s_constants ()
void rb_frozen_class_p (VALUE klass)
void rb_undef (VALUE klass, ID id)
VALUE rb_mod_undef_method (int argc, VALUE *argv, VALUE mod)
void rb_alias (VALUE klass, ID name, ID def)
VALUE rb_mod_alias_method (VALUE mod, VALUE newname, VALUE oldname)
NODEcopy_node_scope (NODE *node, NODE *rval)
char * is_defined (VALUE, NODE *, char *)
char * arg_defined (VALUE self, NODE *node, char *buf, char *type)
int handle_rescue (VALUE, NODE *)
void blk_free ()
VALUE rb_obj_is_proc (VALUE proc)
void rb_add_event_hook (rb_event_hook_func_t func, rb_event_t events)
int rb_remove_event_hook (rb_event_hook_func_t func)
VALUE set_trace_func (VALUE obj, VALUE trace)
char * get_event_name (rb_event_t event)
VALUE avalue_to_svalue (VALUE v)
VALUE svalue_to_avalue (VALUE v)
VALUE svalue_to_mrhs (VALUE v, NODE *lhs)
VALUE avalue_splat (VALUE v)
VALUE rb_Array (VALUE val)
VALUE splat_value (VALUE v)
VALUE class_prefix (VALUE self, NODE *cpath)
void return_jump (VALUE)
void break_jump (VALUE)
void unknown_node (NODE *volatile)
int rb_obj_respond_to (VALUE obj, ID id, int priv)
int rb_respond_to (VALUE obj, ID id)
VALUE obj_respond_to (int argc, VALUE *argv, VALUE obj)
VALUE rb_mod_method_defined (VALUE mod, VALUE mid)
VALUE rb_mod_public_method_defined (VALUE mod, VALUE mid)
VALUE rb_mod_private_method_defined (VALUE mod, VALUE mid)
VALUE rb_mod_protected_method_defined (VALUE mod, VALUE mid)
VALUE terminate_process (int, VALUE)
void rb_exit (int status)
VALUE rb_f_exit (int argc, VALUE *argv)
VALUE rb_f_abort (int argc, VALUE *argv)
void rb_iter_break ()
void rb_longjmp (int, VALUE)
VALUE make_backtrace (void)
void rb_exc_raise (VALUE mesg)
void rb_exc_fatal (VALUE mesg)
void rb_interrupt ()
VALUE rb_f_raise (int argc, VALUE *argv)
void rb_jump_tag (int tag)
int rb_block_given_p ()
int rb_iterator_p ()
void proc_jump_error (int, VALUE)
void rb_need_block ()
VALUE rb_yield (VALUE val)
VALUE rb_yield_values (int n,...)
VALUE rb_yield_splat (VALUE values)
VALUE rb_f_loop ()
VALUE rb_iterate (it_proc, VALUE data1, bl_proc, VALUE data2)
VALUE rb_rescue2 (VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*r_proc)(ANYARGS), VALUE data2,...)
VALUE rb_rescue (b_proc, VALUE data1, r_proc, VALUE data2)
VALUE rb_protect (proc, VALUE data, int *state)
VALUE rb_ensure (b_proc, VALUE data1, e_proc, VALUE data2)
VALUE rb_with_disable_interrupt (proc, VALUE data)
void stack_check ()
VALUE rb_method_missing (int argc, VALUE *argv, VALUE obj)
VALUE method_missing (VALUE obj, ID id, int argc, const VALUE *argv, int call_status)
VALUE call_cfunc (func, VALUE recv, int len, int argc, VALUE *argv)
VALUE rb_call0 (VALUE klass, VALUE recv, ID id, ID oid, int argc, VALUE *argv, NODE *volatile body, int flags)
VALUE rb_apply (VALUE recv, ID mid, VALUE args)
VALUE rb_f_send (int argc, VALUE *argv, VALUE recv)
VALUE vafuncall (VALUE recv, ID mid, int n, va_list *ar)
VALUE rb_funcall (VALUE recv, ID mid, int n,...)
VALUE rb_funcall_rescue (VALUE recv, ID mid, int n,...)
VALUE rb_funcall2 (VALUE recv, ID mid, int argc, const VALUE *argv)
VALUE rb_funcall3 (VALUE recv, ID mid, int argc, const VALUE *argv)
VALUE rb_call_super (int argc, const VALUE *argv)
VALUE backtrace (int lev)
VALUE rb_f_caller (int argc, VALUE *argv)
void rb_backtrace ()
ID rb_frame_last_func ()
VALUE rb_f_eval (int argc, VALUE *argv, VALUE self)
VALUE exec_under (func, VALUE under, VALUE cbase, void *args)
VALUE eval_under_i (VALUE *args)
VALUE eval_under (VALUE under, VALUE self, VALUE src, const char *file, int line)
VALUE yield_under_i (VALUE self)
VALUE yield_under (VALUE under, VALUE self)
VALUE specific_eval (int argc, VALUE *argv, VALUE klass, VALUE self)
VALUE rb_obj_instance_eval (int argc, VALUE *argv, VALUE self)
VALUE rb_mod_module_eval (int argc, VALUE *argv, VALUE mod)
void load_failed (VALUE)
void rb_load (VALUE fname, int wrap)
void rb_load_protect (VALUE fname, int wrap, int *state)
VALUE rb_f_load (int argc, VALUE *argv)
char * rb_feature_p (char *feature, char *ext, int rb) const
int rb_provided (char *feature) const
void rb_provide_feature (VALUE feature)
void rb_provide (char *feature) const
int load_wait (char *ftptr)
VALUE rb_f_require (VALUE obj, VALUE fname)
int search_required (VALUE fname, VALUE *featurep, VALUE *path)
VALUE rb_require_safe (VALUE fname, int safe)
VALUE rb_require (char *fname) const
void secure_visibility (VALUE self)
void set_method_visibility (VALUE self, int argc, VALUE *argv, ID ex)
VALUE rb_mod_public (int argc, VALUE *argv, VALUE module)
VALUE rb_mod_protected (int argc, VALUE *argv, VALUE module)
VALUE rb_mod_private (int argc, VALUE *argv, VALUE module)
VALUE rb_mod_public_method (int argc, VALUE *argv, VALUE obj)
VALUE rb_mod_private_method (int argc, VALUE *argv, VALUE obj)
VALUE top_public (int argc, VALUE *argv)
VALUE top_private (int argc, VALUE *argv)
VALUE rb_mod_modfunc (int argc, VALUE *argv, VALUE module)
VALUE rb_mod_append_features (VALUE module, VALUE include)
VALUE rb_mod_include (int argc, VALUE *argv, VALUE module)
void rb_obj_call_init (VALUE obj, int argc, VALUE *argv)
void rb_extend_object (VALUE obj, VALUE module)
VALUE rb_mod_extend_object (VALUE mod, VALUE obj)
VALUE rb_obj_extend (int argc, VALUE *argv, VALUE obj)
VALUE top_include (int argc, VALUE *argv, VALUE self)
VALUE rb_f_trace_var ()
VALUE rb_f_untrace_var ()
void errinfo_setter (VALUE val, ID id, VALUE *var)
VALUE errat_getter (ID id)
void errat_setter (VALUE val, ID id, VALUE *var)
VALUE rb_f_local_variables ()
VALUE rb_f_catch (VALUE, VALUE)
VALUE rb_f_throw (int, VALUE *)
void rb_set_end_proc (func, VALUE data)
void rb_mark_end_proc ()
void call_end_proc (VALUE data)
VALUE rb_f_at_exit ()
void Init_eval ()
VALUE rb_mod_autoload (VALUE mod, VALUE sym, VALUE file)
VALUE rb_mod_autoload_p (VALUE mod, VALUE sym)
VALUE rb_f_autoload (VALUE obj, VALUE sym, VALUE file)
VALUE rb_f_autoload_p (VALUE obj, VALUE sym)
void Init_load ()
void blk_mark (struct BLOCK *data)
void frame_free (struct FRAME *frame)
void blk_free (struct BLOCK *data)
void frame_dup (struct FRAME *frame)
void blk_copy_prev (struct BLOCK *block)
void blk_dup (struct BLOCK *dup, struct BLOCK *orig)
VALUE proc_clone (VALUE self)
VALUE proc_dup (VALUE self)
void proc_save_safe_level (VALUE data)
int proc_get_safe_level (VALUE data)
void proc_set_safe_level (VALUE data)
VALUE proc_alloc (VALUE klass, int proc)
VALUE proc_s_new (int argc, VALUE *argv, VALUE klass)
VALUE rb_block_proc ()
VALUE rb_f_lambda ()
VALUE proc_lambda ()
int block_orphan (struct BLOCK *data)
VALUE proc_call (VALUE proc, VALUE args)
VALUE bmcall (VALUE, VALUE)
VALUE method_arity (VALUE)
VALUE proc_arity (VALUE proc)
VALUE proc_eq (VALUE self, VALUE other)
VALUE proc_to_s (VALUE self)
VALUE proc_to_self (VALUE self)
VALUE proc_binding (VALUE proc)
void bm_mark (struct METHOD *data)
VALUE mnew (VALUE klass, VALUE obj, ID id, VALUE mklass)
VALUE method_eq (VALUE method, VALUE other)
VALUE method_unbind (VALUE obj)
VALUE rb_obj_method (VALUE obj, VALUE vid)
VALUE rb_mod_method (VALUE mod, VALUE vid)
VALUE method_clone (VALUE self)
VALUE method_inspect (VALUE method)
VALUE mproc (VALUE method)
VALUE rb_proc_new (func, VALUE val)
VALUE method_proc (VALUE method)
VALUE rb_obj_is_method (VALUE m)
void Init_Proc ()
void Init_Binding ()
void rb_thread_ready (rb_thread_t)
VALUE run_trap_eval (VALUE)
VALUE rb_trap_eval (VALUE cmd, int sig, int safe)
const char * thread_status_name (enum thread_status status)
void rb_set_safe_level (int level)
double timeofday ()
void mark_frame_adj (struct FRAME *frame, rb_thread_t th)
void thread_mark (rb_thread_t th)
void rb_gc_mark_threads ()
void thread_free (rb_thread_t th)
rb_thread_t rb_thread_check (VALUE data)
VALUE rb_thread_raise (int, VALUE *, rb_thread_t)
void rb_thread_save_context (rb_thread_t th)
int rb_thread_switch (int n)
void rb_thread_restore_context (rb_thread_t, int)
void stack_extend (rb_thread_t th, int exit)
void rb_thread_die (rb_thread_t th)
void rb_thread_remove (rb_thread_t th)
int rb_thread_dead (rb_thread_t th)
void rb_thread_fd_close (int fd)
void rb_thread_main_jump (VALUE, int)
void rb_thread_deadlock (void)
void copy_fds (fd_set *dst, fd_set *src, int max)
int match_fds (fd_set *dst, fd_set *src, int max)
int intersect_fds (fd_set *src, fd_set *dst, int max)
int find_bad_fds (fd_set *dst, fd_set *src, int max)
void rb_thread_schedule ()
void rb_thread_wait_fd (int fd)
int rb_thread_fd_writable (int fd)
void rb_thread_wait_for (struct timeval time)
void rb_thread_sleep_forever (void)
int rb_thread_alone ()
int rb_thread_select (int max, fd_set *read, fd_set *write, fd_set *except, struct timeval *timeout)
int rb_thread_join (rb_thread_t, double)
VALUE rb_thread_join_m (int argc, VALUE *argv, VALUE thread)
VALUE rb_thread_current ()
VALUE rb_thread_main ()
VALUE rb_thread_list ()
VALUE rb_thread_wakeup (VALUE thread)
VALUE rb_thread_run (VALUE thread)
VALUE rb_thread_kill (VALUE thread)
VALUE rb_thread_s_kill (VALUE obj, VALUE th)
VALUE rb_thread_exit ()
VALUE rb_thread_pass ()
VALUE rb_thread_stop ()
timeval rb_time_timeval ()
void rb_thread_polling ()
void rb_thread_sleep (int sec)
VALUE rb_thread_priority (VALUE thread)
VALUE rb_thread_priority_set (VALUE thread, VALUE prio)
VALUE rb_thread_safe_level (VALUE thread)
VALUE rb_thread_s_abort_exc ()
VALUE rb_thread_s_abort_exc_set (VALUE self, VALUE val)
VALUE rb_thread_abort_exc (VALUE thread)
VALUE rb_thread_abort_exc_set (VALUE thread, VALUE val)
VALUE rb_thread_group (VALUE thread)
rb_thread_t rb_thread_alloc (VALUE klass)
void catch_timer (int sig)
void rb_thread_start_timer ()
void rb_thread_stop_timer ()
VALUE rb_thread_start_0 (fn, void *arg, rb_thread_t th)
VALUE rb_thread_create (fn, void *arg)
VALUE rb_thread_yield (VALUE arg, rb_thread_t th)
VALUE rb_thread_s_new (int argc, VALUE *argv, VALUE klass)
VALUE rb_thread_initialize (VALUE thread, VALUE args)
VALUE rb_thread_start (VALUE klass, VALUE args)
VALUE rb_thread_value (VALUE thread)
VALUE rb_thread_status (VALUE thread)
VALUE rb_thread_alive_p (VALUE thread)
VALUE rb_thread_stop_p (VALUE thread)
VALUE rb_thread_critical_get ()
VALUE rb_thread_critical_set (VALUE obj, VALUE val)
void rb_thread_interrupt ()
void rb_thread_signal_raise (char *sig)
void rb_thread_trap_eval (VALUE cmd, int sig, int safe)
void rb_thread_signal_exit ()
VALUE rb_thread_raise_m (int argc, VALUE *argv, VALUE thread)
VALUE rb_thread_local_aref (VALUE thread, ID id)
VALUE rb_thread_aref (VALUE thread, VALUE id)
VALUE rb_thread_local_aset (VALUE thread, ID id, VALUE val)