66 list = &ephemeral_end_procs;
87 link = ephemeral_end_procs;
99 VALUE errinfo = *errp;
101 while ((
link = *procs) != 0) {
105 (*endproc.func) (endproc.data);
119 exec_end_procs_chain(&ephemeral_end_procs, &ec->
errinfo);
120 exec_end_procs_chain(&end_procs, &ec->
errinfo);
124 error_handle(ec,
state);
#define rb_define_global_function(mid, func, arity)
Defines rb_mKernel #mid.
void rb_mark_end_proc(void)
void rb_set_end_proc(void(*func)(VALUE), VALUE data)
void rb_call_end_proc(VALUE data)
void rb_gc_mark(VALUE ptr)
int rb_block_given_p(void)
Determines if the current method is given a block.
void rb_raise(VALUE exc, const char *fmt,...)
VALUE rb_block_proc(void)
VALUE rb_proc_call(VALUE, VALUE)
struct end_proc_data * next
int link(const char *, const char *)