[Anthy-dev 1981] Re: uim-helperでのwrite(2)とselect(2)

Back to archive index

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*****



Anthy-dev メーリングリストの案内
Back to archive index