Shiro Kawai
shiro****@lava*****
2004年 2月 1日 (日) 15:58:28 JST
From: Kimura Fuyuki <fuyuk****@nigre*****> Subject: [Gauche-devel-jp] Re: apacheのrestart時に、Gauche-fastcgiプロセスが残ってしまう Date: Sun, 01 Feb 2004 11:06:59 +0900 > 0.0ではシグナルに関してなにもしていないので、SIGTERM で死んでくれると > 思ったんですけどね。 > > 原因はまだつかめてませんが、おそらくGaucheの > > シグナルがSchemeプロセスに送られると、それはVM中のキューに入れ > られます。 VMは「安全なポイント」に達した時にキューを検査し、 > シグナルが届いていればそれを順に処理します。 > > という特性に関係があるのではないかと見ています。killしたあと、ページを > リロードしたりするといちおう死んではくれるので。 ふむ。 待っているのは多分FCGX_Acceptですよね? こいつが、EINTRでシステム コールが返った時に内部でシステムコールをリスタートするようにしていると、 受けたシグナルはキューにたまるだけで処理されないっぽいです。 …と思ってソースをみてみたら、libfcgi/os_unix.cのOS_Acceptで やぱりEINTRはリスタートかけてますね。ただ、fail_on_intrという フラグがあるみたいなんで、これをうまく使えばいけるかも。 --shiro