欢迎使用CSDN-markdown编辑器

来源:互联网 发布:佛山美工设计 编辑:程序博客网 时间:2024/06/06 01:43

MySQL 信号处理函数

mysqld.ccvoid my_init_signals(void){  sigset_t set;  struct sigaction sa;  DBUG_ENTER("my_init_signals");  my_sigset(THR_SERVER_ALARM,print_signal_warning); // Should never be called!  if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL))  {    sa.sa_flags = SA_RESETHAND | SA_NODEFER;    sigemptyset(&sa.sa_mask);    sigprocmask(SIG_SETMASK,&sa.sa_mask,NULL);#ifdef HAVE_STACKTRACE    my_init_stacktrace();#endif#if defined(__amiga__)    sa.sa_handler=(void(*)())handle_fatal_signal;#else    sa.sa_handler=handle_fatal_signal;#endif    sigaction(SIGSEGV, &sa, NULL);    sigaction(SIGABRT, &sa, NULL);#ifdef SIGBUS    sigaction(SIGBUS, &sa, NULL);#endif    sigaction(SIGILL, &sa, NULL);    sigaction(SIGFPE, &sa, NULL);  }  }void my_write_core(int sig){  signal(sig, SIG_DFL);  pthread_kill(pthread_self(), sig);#if defined(P_MYID) && !defined(SCO)  /* On Solaris, the above kill is not enough */  sigsend(P_PID,P_MYID,sig);#endif}