[Scim-imengine-dev 1193] Re: scim-bridge-0.2.2が無限増殖する

アーカイブの一覧に戻る

大力亮 ryo-d****@users*****
2006年 6月 27日 (火) 10:40:12 JST


大力です。

Takuro Ashie wrote:
> On Mon, 26 Jun 2006 19:50:06 +0900
> Ryo Dairiki <ryo-d****@users*****> wrote:
>
>   
>>>> しかし、アプリケーションを立ち上げると、2つほど新たなscim-bridge-agentプ
>>>> ロセスが立ち上がってしまいます。また、アプリケーションを終了すると、対応
>>>> するscim-bridge-agentは2つとも終了します。
>>>>     
>>>>         
>> アプリケーションを開きつづけると、エージェントが2つづつ、
>> 際限なく起動しつづけるということですか?
>>     
>
> そうです。最初に6つ起動して、アプリケーションが一つ増える度にエージェン
> トが2つ増えます。
>   

ふむ。

>> 二つのプロセス、およびクライアントのプロセスはそれぞれ他人同士ですか?親
>> 子ですか?
>>     
>
> pstreeで見ると、どんどん子供を生んでいるように見えます。 
>
>     |-scim-bridge-age---scim-bridge-age---8*[scim-bridge-age]
>
> アプリケーションを起動する度に、末端に2つ追加されていきます。
> この枝以外にはscim-bridge-agentは存在しません。
> 実際に通信をしているのは、最初に起動されたプロセスのようです。
>   

分かりました。
それはプロセスではなくスレッドです。
Linuxではスレッドとプロセスの区別が曖昧なので、
pstreeで見ると区別が付かないというオチだと思います。

pstreeで確認するとscim-bridgeが複数起動しているように見えますが、
ps -Aで確認すると一つしか起動していないです。
(少し前のバージョンのpsでは複数見えたらしいのですが、FC5では一つに見えます)

> また、アプリケーションを起動すると以下のようなメッセージが出ることがあります。
> いつもというわけではないようです。
>
>   Giveup initializing scim-bridge...orz
>   IO exception has been occured: Failed to connect the message socket: そのような ファイルやディレクトリはありません
>   stacktrace:
>    at open_connection ()
>   

うーむ、エージェントの起動に予想以上に時間が掛かるため、
タイムアウトになって接続失敗扱いになってしまうのだと思います。
エージェントが完全に立ち上がるまではクライアントはちゃんと待つように改良
します。


大力亮 <ryo-d****@users*****>



Scim-imengine-dev メーリングリストの案内
アーカイブの一覧に戻る