Etsushi Kato
ekato****@ees*****
2005年 3月 21日 (月) 16:09:38 JST
On Mon, Mar 21, 2005 at 12:19:00PM +0900, YamaKen <yamak****@bp*****> wrote: > At Mon, 21 Mar 2005 01:59:55 +0900, > ekato****@ees***** wrote: > > これでヤマケンさん案のように、helper-server は non-blocking IO で read > > と write を select する、client は blocking IO ですべて write するよう > > になったので、これからコードをコミットしておきます。 > > ありがとうございます。このコードなら構造的に問題が起きにくいです > ね。 ようやく uim-helper を問題の無い形にできたようです。ちょっと時間がかかっ てしまいましたけど、ヤマケンさん、アドバイスどうもありがとうございまし た。勉強になりました。 blocking write と uim-xim の問題はまた別だったようで、 uim_helper_send_message() の blocking write で処理が止まってしまうとき にイベントがあると、その部分で select できなくなるのが問題だったようで、 これもついでに解決できました。 On Mon, Mar 21, 2005 at 12:42:05PM +0900, YamaKen <yamak****@bp*****> wrote: > At Mon, 21 Mar 2005 12:19:00 +0900, > yamak****@bp***** wrote: > > 昔のhelper-server向けの余分な処理等をr805で整理してみたので時間 > > のある時に確認お願いします。 > > この変更はまずい事に気付きました。後で直しておきます。 > > uim-helper-serverをバイトストリームレベルのreflectorにしてしまっ > たんですが、メッセージ単位で区切るようになってないと複数のメッセー > ジが同時発行された時に混ざってしまいますね。 そうですね。read 側のバッファも client ごとに持っていないと、混ざって しまうかもしれません。 > というわけで、パフォーマンスが不足しない限りは当分このコードと従 > 来のhelper APIを使い続けたいと思います。このAPIではbridgeの実装 > に負担がかかるという問題はありますが、当分新しいbridgeは出てこな > いと思うので。Scheme側のコードの再編が進んだらそれに合わせて改訂 > したいと思います。 楽しみにしています。 -- Etsushi Kato ekato****@ees*****