eval_jump.c File Reference
`#include "eval_intern.h"`

Go to the source code of this file.

## Data Structures

struct | end_proc_data

## Functions

void | rb_call_end_proc (VALUE data)
static VALUE | rb_f_at_exit (void)
void | rb_set_end_proc (void(*func)(VALUE), VALUE data)
void | rb_mark_end_proc (void)
void | rb_exec_end_proc (void)
void | Init_jump (void)

## Variables

static struct end_proc_data * | end_procs
static struct end_proc_data * | ephemeral_end_procs

## Function Documentation

void Init_jump | ( | void |  | ) |

Definition at line 138 of file eval_jump.c.

References rb_define_global_function(), and rb_f_at_exit().

void rb_call_end_proc | ( | VALUE | data | ) |

Definition at line 11 of file eval_jump.c.

References rb_ary_new(), and rb_proc_call().

Referenced by m_core_set_postexe(), and rb_f_at_exit().

void rb_exec_end_proc | ( | void |  | ) |

Definition at line 97 of file eval_jump.c.

References end_proc_data::data, end_procs, ephemeral_end_procs, error_handle(), EXEC_TAG, end_proc_data::func, link(), end_proc_data::next, POP_TAG, PUSH_TAG, rb_safe_level, rb_set_safe_level_force(), end_proc_data::safe, and xfree().

Referenced by ruby_finalize_0().

static VALUE rb_f_at_exit | ( | void |  | ) |

static

Definition at line 38 of file eval_jump.c.

References rb_block_given_p(), rb_block_proc(), rb_call_end_proc(), rb_eArgError, rb_raise(), and rb_set_end_proc().

Referenced by Init_jump().

void rb_mark_end_proc | ( | void |  | ) |

Definition at line 80 of file eval_jump.c.

References end_proc_data::data, end_procs, ephemeral_end_procs, link(), end_proc_data::next, and rb_gc_mark().

Referenced by gc_marks().

void rb_set_end_proc | ( | void(*)(VALUE) | func,
|  | VALUE | data
| ) |  |

Definition at line 60 of file eval_jump.c.

References ALLOC, end_proc_data::data, end_procs, ephemeral_end_procs, end_proc_data::func, func, GET_THREAD, link(), list, end_proc_data::next, rb_safe_level, end_proc_data::safe, and rb_thread_struct::top_wrapper.

Referenced by Init_curses(), Init_tcltklib(), m_core_set_postexe(), and rb_f_at_exit().

## Variable Documentation

struct end_proc_data* end_procs

static

Definition at line 57 of file eval_jump.c.

Referenced by rb_exec_end_proc(), rb_mark_end_proc(), and rb_set_end_proc().

struct end_proc_data * ephemeral_end_procs

static

Definition at line 57 of file eval_jump.c.

Referenced by rb_exec_end_proc(), rb_mark_end_proc(), and rb_set_end_proc().