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

signal.c File Reference

#include "ruby.h"
#include "rubysig.h"
#include <signal.h>
#include <stdio.h>

Go to the source code of this file.

Data Structures

struct  signals
struct  trap_arg

Defines

#define NSIG   (_SIGMAX + 1)
#define IN_MAIN_CONTEXT(f, a)   f(a)

Typedefs

typedef RETSIGTYPE(* sighandler_t )(int)

Functions

int signm2signo (char *nm)
char * signo2signm (int no)
const char * ruby_signal_name (int no)
VALUE rb_f_kill (int argc, VALUE *argv)
void rb_gc_mark_trap_list ()
sighandler_t ruby_signal (int signum, sighandler_t handler)
void posix_signal (int signum, sighandler_t handler)
void signal_exec (int sig)
RETSIGTYPE sighandler (int)
void rb_trap_exit ()
void rb_trap_exec ()
RETSIGTYPE sigexit (int)
VALUE trap (struct trap_arg *arg)
VALUE trap_ensure (struct trap_arg *arg)
void rb_trap_restore_mask ()
VALUE sig_trap (int argc, VALUE *argv)
VALUE sig_list ()
void install_sighandler (int signum, sighandler_t handler)
void init_sigchld (int sig)
void Init_signal ()

Variables

signals siglist
struct {
   VALUE   cmd
   int   safe
trap_list [NSIG]
rb_atomic_t trap_pending_list [NSIG]
rb_atomic_t rb_trap_pending
rb_atomic_t rb_trap_immediate
int rb_prohibit_interrupt = 1
sigset_t trap_last_mask


Define Documentation

#define IN_MAIN_CONTEXT f,
 )     f(a)
 

Referenced by sighandler().

#define NSIG   (_SIGMAX + 1)
 

Definition at line 28 of file signal.c.

Referenced by rb_gc_mark_trap_list(), rb_trap_exec(), sighandler(), and trap().


Typedef Documentation

typedef RETSIGTYPE(* sighandler_t)(int)
 

Definition at line 328 of file signal.c.

Referenced by init_sigchld(), install_sighandler(), posix_signal(), ruby_signal(), and trap().


Function Documentation

void init_sigchld int  sig  )  [static]
 

Definition at line 776 of file signal.c.

References NULL, ruby_signal(), sighandler_t, trap_last_mask, and trap_list.

Referenced by Init_signal().

void Init_signal void   ) 
 

Definition at line 855 of file signal.c.

References init_sigchld(), install_sighandler(), rb_define_global_function(), rb_define_module(), rb_define_module_function(), sig_list(), sig_trap(), sighandler(), and VALUE.

Referenced by rb_call_inits().

void install_sighandler int  signum,
sighandler_t  handler
[static]
 

Definition at line 763 of file signal.c.

References ruby_signal(), and sighandler_t.

Referenced by Init_signal().

void posix_signal int  signum,
sighandler_t  handler
 

Definition at line 358 of file signal.c.

References ruby_signal(), and sighandler_t.

Referenced by rb_thread_start_0().

void rb_trap_restore_mask void   ) 
 

Definition at line 664 of file signal.c.

References NULL, and trap_last_mask.

Referenced by rb_f_throw(), and rb_longjmp().

sighandler_t ruby_signal int  signum,
sighandler_t  handler
[static]
 

Definition at line 332 of file signal.c.

References sighandler_t.

Referenced by init_sigchld(), install_sighandler(), posix_signal(), sighandler(), and trap().

VALUE sig_list  )  [static]
 

Definition at line 751 of file signal.c.

References INT2FIX, rb_hash_aset(), rb_hash_new(), rb_str_new2(), siglist, signals::signm, and VALUE.

Referenced by Init_signal().

VALUE sig_trap int  argc,
VALUE argv
[static]
 

Definition at line 704 of file signal.c.

References trap_arg::cmd, trap_arg::mask, OBJ_TAINTED, rb_block_proc(), rb_eArgError, rb_ensure(), rb_eSecurityError, rb_raise(), rb_secure(), trap_arg::sig, trap(), trap_ensure(), and VALUE.

Referenced by Init_signal().

RETSIGTYPE sigexit int   )  [static]
 

Definition at line 509 of file signal.c.

References rb_thread_signal_exit().

Referenced by trap().

RETSIGTYPE sighandler int   )  [static]
 

Definition at line 404 of file signal.c.

References ATOMIC_INC, ATOMIC_SET, ATOMIC_TEST, IN_MAIN_CONTEXT, NSIG, rb_bug(), rb_trap_immediate, rb_trap_pending, ruby_signal(), sighandler(), signal_exec(), and trap_pending_list.

Referenced by Init_signal(), sighandler(), and trap().

void signal_exec int  sig  )  [static]
 

Definition at line 370 of file signal.c.

References cmd, rb_thread_interrupt(), rb_thread_signal_raise(), rb_thread_trap_eval(), safe, signo2signm(), and trap_list.

Referenced by rb_trap_exec(), and sighandler().

int signm2signo char *  nm  )  [static]
 

Definition at line 172 of file signal.c.

References siglist, and signals::signm.

Referenced by rb_f_kill(), and trap().

char* signo2signm int  no  )  [static]
 

Definition at line 184 of file signal.c.

References siglist, and signals::signm.

Referenced by ruby_signal_name(), and signal_exec().

VALUE trap struct trap_arg arg  )  [static]
 

Definition at line 516 of file signal.c.

References FIX2INT, NIL_P, NSIG, Qnil, rb_eArgError, rb_id2name(), rb_raise(), rb_str_new2(), RSTRING, ruby_safe_level, ruby_signal(), SafeStringValue, sigexit(), sighandler(), sighandler_t, signm2signo(), SYM2ID, T_FIXNUM, T_STRING, T_SYMBOL, trap_list, TYPE, and VALUE.

Referenced by sig_trap().

VALUE trap_ensure struct trap_arg arg  )  [static]
 

Definition at line 649 of file signal.c.

References NULL, and trap_last_mask.

Referenced by sig_trap().


Variable Documentation

VALUE cmd
 

Definition at line 303 of file signal.c.

Referenced by io_cntl(), rb_eval_cmd(), rb_f_exec(), rb_f_system(), rb_f_test(), rb_f_trace_var(), rb_f_untrace_var(), rb_gc_mark_trap_list(), rb_io_ctl(), rb_thread_trap_eval(), rb_trace_eval(), rb_trap_eval(), and signal_exec().

int rb_prohibit_interrupt = 1
 

Definition at line 309 of file signal.c.

Referenced by rb_load().

rb_atomic_t rb_trap_immediate
 

Definition at line 308 of file signal.c.

rb_atomic_t rb_trap_pending
 

Definition at line 307 of file signal.c.

Referenced by rb_thread_schedule(), rb_trap_exec(), and sighandler().

int safe
 

Definition at line 304 of file signal.c.

Referenced by block_pass(), eval(), method_call(), proc_invoke(), proc_save_safe_level(), rb_call0(), rb_eval_cmd(), rb_exec_end_proc(), rb_require_safe(), rb_thread_trap_eval(), rb_trap_eval(), rb_trap_exit(), and signal_exec().

struct signals siglist [static]
 

Referenced by sig_list(), signm2signo(), and signo2signm().

sigset_t trap_last_mask [static]
 

Definition at line 502 of file signal.c.

Referenced by init_sigchld(), rb_trap_restore_mask(), and trap_ensure().

struct { ... } trap_list[NSIG] [static]
 

Referenced by init_sigchld(), rb_gc_mark_trap_list(), rb_trap_exit(), signal_exec(), and trap().

rb_atomic_t trap_pending_list[NSIG] [static]
 

Definition at line 306 of file signal.c.

Referenced by rb_trap_exec(), and sighandler().


Generated on Wed Jan 18 23:32:11 2006 for Ruby by doxygen 1.3.5