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);
struct rb_encoding_entry * list
void rb_mark_end_proc(void)
void rb_set_end_proc(void(*func)(VALUE), VALUE data)
void rb_call_end_proc(VALUE data)
int rb_block_given_p(void)
Determines if the current method is given a block.
void rb_raise(VALUE exc, const char *fmt,...)
struct end_proc_data * next