Etsushi Kato
ekato****@ees*****
2005年 2月 7日 (月) 19:29:17 JST
加藤です。 On 2005/02/07, at 12:04, YamaKen wrote: >> いえいえ。変更がヤマケンさんの意図とあっているといいのですが。手元では、 >> 以前のコードで write が失敗するようなことはなかったようなので、ちょっと >> 確認できません。 > > どうもありがとうございます。ちょっと見てみました。 > > write(2)の方は私の意図した動作になりましたが、 確認と修正どうもありがとうございます。 > まだ > uim_helper_fd()まわりに問題があります。これの引き起こす問題につ > いてちょっと説明不足だったのでuim_helper_send_message()にコメン > トを追加しておきました。 今ちょっと調べてみましたが、こっちはぼくには簡単ではなさそうです。 問題となっているのは uim-pref で「適用」ボタンを押すと、既存の IM コンテキストから prop_list と prop_labelの update メッセージが helper になだれ込むことだと思 います。 あまりよくわかってないのですが、helper-server が custom のメッセージを送るのと、 prop のアップデートメッセージを受け取ることの両方で、fd が ready にならない状況が 生まれ、ヤマケンさんご指摘の状態になることがあるようです。 ここでもし uim_helper_fd() なし、あるいは 返り値 >= 0 で write してしまうと、 そのまま write で uim-pref ハングすることがかなりの確率で起きてしまいます。 custom 時に label のアップデートをさせないか、あるいは timeout の時間を設定して、 なるべくそういった状況を回避することしかちょっと思いつきませんが、どうなんでしょう? -- Etsushi Kato ekato****@ees*****