Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
#include "ruby/internal/config.h"
#include <errno.h>
#include <signal.h>
#include <stdio.h>
#include "debug_counter.h"
#include "eval_intern.h"
#include "internal.h"
#include "internal/eval.h"
#include "internal/sanitizers.h"
#include "internal/signal.h"
#include "internal/string.h"
#include "internal/thread.h"
#include "ruby_atomic.h"
#include "vm_core.h"
#include "ractor_core.h"
Go to the source code of this file.
Data Structures | |
struct | signals |
Macros | |
#define | FOREACH_SIGNAL(sig, offset) for (sig = siglist + (offset); sig < siglist + numberof(siglist); ++sig) |
#define | killpg(pg, sig) kill(-(pg), (sig)) |
#define | sighandler_t ruby_sighandler_t |
#define | SIGINFO_ARG |
#define | SIGINFO_CTX 0 |
#define | ruby_signal(sig, handler) (/* rb_trap_accept_nativethreads[(sig)] = 0,*/ signal((sig),(handler))) |
#define | GET_SIGCHLD_HIT() 0 |
#define | clear_received_signal() ((void)0) |
#define | CHECK_STACK_OVERFLOW() (void)0 |
#define | MESSAGE_FAULT_ADDRESS |
#define | INSTALL_SIGHANDLER(cond, signame, signum) |
#define | install_sighandler(signum, handler) INSTALL_SIGHANDLER(install_sighandler_core(signum, handler, NULL), #signum, signum) |
#define | force_install_sighandler(signum, handler, old_handler) INSTALL_SIGHANDLER(install_sighandler_core(signum, handler, old_handler), #signum, signum) |
#define | grantpt(fd) fake_grantfd(fd) |
Typedefs | |
typedef void | ruby_sigaction_t(int) |
Enumerations | |
enum | { LONGEST_SIGNAME = 7 } |
Functions | |
const char * | ruby_signal_name (int no) |
void | rb_malloc_info_show_results (void) |
void | ruby_default_signal (int sig) |
VALUE | rb_f_kill (int argc, const VALUE *argv) |
int | rb_signal_buff_size (void) |
int | rb_get_next_signal (void) |
void | rb_vm_trap_exit (rb_vm_t *vm) |
void | ruby_waitpid_all (rb_vm_t *) |
void | ruby_sigchld_handler (rb_vm_t *vm) |
int | rb_signal_exec (rb_thread_t *th, int sig) |
void | ruby_sig_finalize (void) |
void | Init_signal (void) |
int | rb_grantpt (int masterfd) |
Variables | |
int | ruby_enable_coredump = 0 |
#define force_install_sighandler | ( | signum, | |
handler, | |||
old_handler | |||
) | INSTALL_SIGHANDLER(install_sighandler_core(signum, handler, old_handler), #signum, signum) |
#define FOREACH_SIGNAL | ( | sig, | |
offset | |||
) | for (sig = siglist + (offset); sig < siglist + numberof(siglist); ++sig) |
#define INSTALL_SIGHANDLER | ( | cond, | |
signame, | |||
signum | |||
) |
#define install_sighandler | ( | signum, | |
handler | |||
) | INSTALL_SIGHANDLER(install_sighandler_core(signum, handler, NULL), #signum, signum) |
#define killpg | ( | pg, | |
sig | |||
) | kill(-(pg), (sig)) |
#define ruby_signal | ( | sig, | |
handler | |||
) | (/* rb_trap_accept_nativethreads[(sig)] = 0,*/ signal((sig),(handler))) |
#define sighandler_t ruby_sighandler_t |
void Init_signal | ( | void | ) |
Definition at line 1548 of file signal.c.
References rb_define_global_function, and rb_define_module().
Definition at line 423 of file signal.c.
References argc, argv, FIX2INT, FIXNUM_P, rb_check_arity, str, and UNLIMITED_ARGUMENTS.
int rb_grantpt | ( | int | masterfd | ) |
Definition at line 1624 of file signal.c.
References GET_VM, grantpt, rb_nativethread_lock_lock(), rb_nativethread_lock_unlock(), ret, RUBY_SIGCHLD, and rb_vm_struct::waitpid_lock.
void rb_malloc_info_show_results | ( | void | ) |
Definition at line 11633 of file gc.c.
Referenced by ruby_default_signal().
int rb_signal_buff_size | ( | void | ) |
Definition at line 747 of file signal.c.
Referenced by rb_thread_check_trap_pending(), and rb_threadptr_check_signal().
int rb_signal_exec | ( | rb_thread_t * | th, |
int | sig | ||
) |
Definition at line 1100 of file signal.c.
References rb_vm_struct::cmd, GET_VM, Qundef, rb_interrupt(), rb_threadptr_signal_exit(), rb_threadptr_signal_raise(), SIGINT, and rb_vm_struct::trap_list.
void rb_vm_trap_exit | ( | rb_vm_t * | vm | ) |
Definition at line 1078 of file signal.c.
References rb_vm_struct::cmd, and rb_vm_struct::trap_list.
void ruby_default_signal | ( | int | sig | ) |
Definition at line 407 of file signal.c.
References rb_debug_counter_show_results(), and rb_malloc_info_show_results().
void ruby_sigchld_handler | ( | rb_vm_t * | vm | ) |
Definition at line 1091 of file signal.c.
References GET_SIGCHLD_HIT, ruby_waitpid_all(), and SIGCHLD_LOSSY.
void ruby_waitpid_all | ( | rb_vm_t * | ) |
Definition at line 1151 of file process.c.
References rb_native_mutex_lock(), ruby_nocldwait, rb_vm_struct::waiting_grps, rb_vm_struct::waiting_pids, and rb_vm_struct::waitpid_lock.
Referenced by ruby_sigchld_handler().
rb_atomic_t cnt[RUBY_NSIG] |
Definition at line 508 of file signal.c.
Referenced by procstat_vm(), rb_alloc_tmp_buffer(), rb_ary_rotate(), rb_parser_calloc(), rb_parser_malloc(), and rb_parser_realloc().
int ruby_enable_coredump = 0 |
Definition at line 1508 of file signal.c.
Referenced by ruby_env_debug_option().
rb_atomic_t size |
Definition at line 509 of file signal.c.
Referenced by coroutine_initialize(), onig_bbuf_init(), onig_memsize(), onig_region_memsize(), rb_aligned_malloc(), rb_ast_add_local_table(), rb_ast_memsize(), rb_data_object_zalloc(), rb_data_typed_object_zalloc(), rb_ec_initialize_vm_stack(), rb_ec_set_vm_stack(), rb_ec_wb_protected_newobj_of(), rb_econv_memsize(), rb_hash_new_with_size(), rb_imemo_new(), rb_io_memsize(), rb_iseq_insns_info_decode_positions(), rb_iseq_insns_info_encode_positions(), rb_iseq_mark_insn_storage(), rb_iseq_memsize(), rb_load_with_builtin_functions(), rb_mem_clear(), rb_memory_view_parse_item_format(), rb_parser_calloc(), rb_parser_malloc(), rb_parser_realloc(), rb_struct_new(), rb_w32_read(), rb_w32_reparse_symlink_p(), rb_w32_write(), rb_wb_protected_newobj_of(), rb_wb_unprotected_newobj_of(), reg_get_val(), ruby_fill_random_bytes(), ruby_getcwd(), ruby_mimmalloc(), ruby_xcalloc(), ruby_xmalloc(), ruby_xmalloc2(), ruby_xmalloc_body(), ruby_xrealloc2_body(), and st_init_numtable_with_size().