[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 3270] Re: ぐいぐいプログラミング質問
- Subject: [OSASK 3270] Re: ぐいぐいプログラミング質問
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Wed, 20 Feb 2002 14:02:55 -0000
こんばんは、川合です。
I.Tak. さんは 2002/02/20 20:10:08 の「[OSASK 3267] ぐいぐいプロ
グラミング質問」で書きました:
>ひさしぶりの質問です。
なかなか充実の質問です。少し悩みました(笑)。
>1)要求していないシグナルを想定するべきか。
>[OSASK 2762]
>川合さん:
>>シグナル定義していないシグナルが
>>来ることだって原理的にはありえるくらいです。
> 今のところ要求外のシグナルが来るとハングアップするアプリも
>多いようですが(←送る奴)、これは想定した方がいいのでしょうか。
>杞憂っぽいとは思いますが。
送ってみましたか。それはなかなかナイスなテストです(笑)。
要求外のシグナルが来ないと決め付けるのは、かまいません。それは
アプリの仕様だと言い切ってしまえばいい訳です。
OSASKのシェル側としては、ユーザーが無理矢理シグナルを送りたい
と主張したら、それには逆らいません。送ります。
こういう風に考えてはいかがでしょう。アプリは石油ストーブです。
石油ストーブは、ガソリンを入れてはいけません。シェルは、ユーザー
があえてガソリンを入れたいと強く主張すれば、ガソリンを入れるのを
認めてしまいます(もちろん、事前に警告を出すとかはするかもしれま
せんが)。・・・もしガソリンを入れても爆発しないような安全装置付
きのストーブが作りたければ、そういうシグナルをはじくべきでしょう
。
ちなみに僕のセンスでは、来ないと十分に想定できるシグナルについ
ては、チェックしないでしょう。ネットワークアプリとかじゃないんで
すし、わざわざ変な操作をする方が悪いと思います。きっと一度も分岐
しないif文が入るなんて、なんか虚しいです。
ただし、ある時点で来るかもしれないシグナルは、いつ来てもおかし
くありません。たとえば、ウィンドウをまだオープンしていないのに、
キー入力シグナルが来るなどです。・・・まあ、でも、これも程度問題
です。想定しなくても責められないでしょう。
なんというか、あらゆる事態を想定することよりも、どういう状況を
想定しているかを明確にしてある方が、好ましいと思います。もし想定
範囲が明確なら、将来シグナルフィルターを挟んでどんなシグナルでも
びくともしない実行も可能になるわけですし。
>2)rewindシグナルに他のシグナルが後続することは保証されるのか。
> WaitSignalから戻ってみるとrewindが来ただけだった、ということも
>想定しなければいけないのでしょうか。
これは、うーん、保証してほしいですか?・・・保証してほしいみた
いですね。じゃあ、保証しますか。
>3)システム定義フォントロード完了シグナルを待つ間に他のシグナルが
>来ない事も(モジュールハンドル初期化と同様に)保証されるのか。
保証されません。たとえば、タイマーなどがアクティブになっていれ
ば、タイマーシグナルが来るかもしれません。キー入力可能な状態なら
それらのシグナルも来るかもしれません。他のどんなシグナルも来ない
という状況なら、そう、無理に送らない限り、他のシグナルは来ないで
しょう。
>しなくていい。保証する。保証する。……と言われると非常に楽です(^^;
ということで最後はちょっとうまくいきませんでした。
なんというか、このテーマは、どういう仕様なのか、というよりは、
どうあるべきか、に近かったです(まだちゃんと決めていない範囲だっ
たので)。
将来的に、OSASKアプリはシグナルリダイレクトによって、他のアプ
リからコントロールされるようになります。そのときに不都合が起きな
い程度なら、処理を省略してかまいません。
何か意見がありましたら、是非提案してください。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/