[Anthy-dev 1119] Re: uim_get_default_im_name()の選択アルゴリズム

Back to archive index

TOKUNAGA Hiroyuki tkng****@xem*****
2004年 10月 5日 (火) 09:25:56 JST


On Tue, 05 Oct 2004 08:02:14 +0900
YamaKen <yamak****@bp*****> wrote:

> ・case 1
> 
>   OSの実装や動作状態によってはメッセージの一部だけread(2)可能状
>   態になるのが遅れる事があり得る。その場合はselect(2)でready状態
>   のfdが無かったからといってメッセージの終端まで読み終えたわけで
>   はなく、旧実装と同様にメッセージ切れの問題を起こす

 get_messageは読み込んだバッファの先頭から\n\nを探して、\n\nがなければ
バッファはいじらずにNULLを返すので、メッセージ切れの問題はおこらないと思
うのですが、わたしは何か見落としてるでしょうか?


> ・case 2
> 
>   複数のメッセージが立て続けに送信された場合、今回の実装はそれら
>   のメッセージをひとつながりの文字列として読み出す可能性がある。
>   uim_helper_get_message()内でメッセージ終端("\n\n")を検出してい
>   るので論理的には問題にはならないが、複数の大メッセージが連続し
>   た場合のバッファの消費量を抑えられず、最大消費量を見積る事もで
>   きない

 現実的には無視できる問題だと思います。余裕があれば改善すればいいでしょ
うが、とりあえずは0.4.4の方を優先したいです。


> これらを踏まえての「read_proc()内で"\n\n"を検出する」という発言
> でした。
> 
> > (それを後からget_messageが呼ばれるたびに細切れにして返す)
> 
> これはちょっと意味が取れないんですが、旧実装も今回の実装も1メッ
> セージ分の文字列を丸ごと返しているし、そうしないとまずいですよね?

 read_bufferに複数のメッセージが入っている場合、get_messageが呼ばれるた
びに1メッセージずつ返すと言う意味です。

-- 
徳永拓之
tkng****@xem*****
http://kodou.net/



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