概要
main関数→init_signals関数にて設定されます。いろんなシグナルをトラップしています。
プラットフォームによっていくつか異なるinit_signals関数実装がありますが、ここではWindowsとLinuxについて説明します。
Windows版でのシグナル処理
sql/mysqld.cc (init_signals関数全文)
#if defined(__WIN__) || defined(OS2)
static void init_signals(void)
{
int signals[] = {SIGINT,SIGILL,SIGFPE,SIGSEGV,SIGTERM,SIGABRT } ;
for (uint i=0 ; i < sizeof(signals)/sizeof(int) ; i++)
signal(signals[i], kill_server) ;
#if defined(__WIN__)
signal(SIGBREAK,SIG_IGN); //ignore …[さらに読む]