[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00774] Re: [RFC] error.c rewrite
小野寛生です。
% まだ make していません。
一緒に、signal handler の方も直したかったので、error.c への変更追加。
(2) の変更が問題ないなら de.c も変更を追加します。
(1) extern int errno という宣言は、errno.h を include しているので不要
ではないでしょうか。あって問題にはならないと思いますが、
(2) signal handler をまとめてみました。
daemon_fin() は再入可能ではないはずなので、その対策をいれてみました。
exit_hand() も、signal_handler(250) とよべばまとめられるでしょう。
現状は実質つかわれていませんが、default が SIG_IGN でない signal に
ついてはこれを signal() で指定すればよいかと思います。(de.c)。
こんなものでどうでしょうか。
% 尚、対応して、de_header.h も修正が必要。
style 考えていませんが…。
void
signal_handler (signal)
int signal
{
static int st;
if (st > 1) {
return;
}
st = 1;
switch signal {
case SIGHUP: /* FALLTHROUGH */
case SIGINT: /* FALLTHROUGH */
case SIGQUIT:
#ifdef SYSVR2
signal (signal, signal_hand);
#endif
st = 0;
break;
case SIGTERM:
st = 2;
daemon_fin ();
exit (0);
break;
default:
st = 2;
daemon_fin ();
exit (signal);
break;
}
}