佐藤精一です。
On Tue, Nov 16, 2004 at 02:32:44AM +0900,
Seiichi SATO wrote:
> On Mon, Nov 15, 2004 at 09:31:06PM +0900,
> TAKAHASHI Tamotsu wrote:
>
> > mlterm (CVS-20041115) で ~/mlterm/main を
> > input_method = uim
> > としている (uim のデフォルトは prime になっている) ときに
> > mlterm --daemon=blend
> > mlclient
> > として、mlclient のほう (二番目に出てきたほう) で
> > mlconfig を出して「適用」をクリックすると、
> > prime の ruby が core を残して死んでしまい、
> > 同時に mlterm も靜かに消えてしまいます。
>
> これは、ruby からの SIGCHLD を端末が死んだと解釈してしまうのが原
> 因です。発生する条件は高橋さんが報告してくれたパターン以外にも色々
> ありまして、uim 対応作業を始めた頃から悩まされ続けています。
> im_uim.c を SIGCHLD で検索していただければ色々と悪あがきをしてい
> るのがわかるかと思います。
>
> > ruby が segmentation fault になる状況は
> > http://jp.rubyist.net/magazine/?0002-RubyCore#l3
> > いろいろあるそうなので仕方ないとして、
> > mlterm がつられて落ちてしまうのは回避できませんか。
> > 現状、mlconfig が使えなくなって困っています。
>
> ad-hoc な方法では逃げられないっぽいので根本的なところから見直して
> みます。ちょっと時間をください。
2.9.0 post/cvs-1.776 で修正をコミットしました
今日一日 prime を使ってみた限りでは問題なさそうです。
以下、修正点です。
- pty 以外のプロセスから SIGCHLD を受け取ると端末が死んだと解釈さ
れてしまうバグを修正。(ml_term_manager.c)
- prime が落ちても mlterm が落ちないように SIGPIPE 用ハンドラを追加。
(im_uim.c)
--
Seiichi
|