From: Seiichi S. <ss...@sh...> - 2004-11-16 09:01:11
|
佐藤精一です。 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 |