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

Back to archive index

Etsushi Kato ekato****@ees*****
2005年 3月 19日 (土) 12:27:24 JST


ヤマケンさん、こんにちは。

On Fri, Mar 18, 2005 at 04:16:37PM +0900,
Etsushi Kato <ekato****@ees*****> wrote:

> もちろん、write のコードの見直しが必要だと思うのですが、それだけでうまく対処
> できるのかどうかよくわからない、というつもりでした。
> そのため、コードの見直しも行ったうえで、ブロードキャストではなく、
> toolbar と普通のクライアントを server 側で区別して write するのも手
> かなと感じました。

helper-server で write 側も select するような構造でかつ、
uim_helper_send_message() を blocking IO するように試した変更をとりあ
えず送ります。

ただ、これだけでは helper-server が write に失敗する場合にうまく動いて
くれない場合がどうしても出てしまいました (まだどっかおかしいのかも…)。
ということで、このパッチには上で書いたように、client によって送るメッ
セージ制限の制限も試しに含めてみました。

uim_helper_init_normal_client_fd(),
uim_helper_init_toolbar_client_fd() という API を追加していて、
helper-server はこれらを区別して、normal_client には、
prop_{list,label}_update を送らないがそれ以外は送る、toolbar_client に
はすべてのメッセージを送るようにしています。また、libuim-custom の
client には、まったくメッセージを送らないようにしています。

これまでの uim_helper_init_client_fd() を使った場合
には、helper-server は、toolbar_client (すべてのメッセージを受信するク
ライアント) と認識して動きます。

これで手元では、高負荷でも helper の問題は出なくなります。
もちろん、こういったクライアントごとのメッセージの選別なしに動くともっ
といいのですが、どうでしょうか?
-- 
Etsushi Kato
ekato****@ees*****
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: helper-client-050319.diff.gz
型:         application/x-gunzip
サイズ:     4076 バイト
説明:       無し
Descargar 


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