RSS

 

RSS


プ:ステータスのあやうさ

  • いわいまさか
  • at 2012/8/05 07:12:39

プログラミングの要素にステータスというものがある。
時として、自分が作ったのではないクラス・関数のステータスを見る場合がある。

そんなステータスを使うのはあやういのだ。
そんなあやうさを例え話で。

 

シュレッダーがある。書類を入れると切り刻んでくれる機械だ。

まずはこんなやりとり。
「内部の歯が止まってるか止まってないかがわかるよね。それを外からも信号とれるようにしといて」
「それなら簡単ですやっときます」

この信号をもとに、内部の歯が止まってたら、ランプが消えて、内部の歯が動いていたらランプがつくようにする。

ランプが点滅する装置。
だいじょうぶだ。調子がいい。

だが、ここで問題は、
内部の歯が止まってる信号が落ちているからといって、
手を突っ込んでも大丈夫だろうか?

1.内部の歯を動かす電気は止まっていても、実際には余力で回っているかもしれないのだ。

2.その瞬間、止まってる信号を確認して、そして、実際に止まっていても、いつ動き出すかも知れないのだ。

実に危険だ。手を安心して入れるためには、ステータスとは別の機構がいる。


プログラムでも同じようなことが起こる。

例えば、ムービーを扱うライブラリをつかっているとして。
Stopする関数を呼んだ。
ステータスを見る関数をみると「Stop状態」だ。
だけど、内部的には、まだStop処理をしてる途中で、なにかファイルを扱う関数をこれから呼ぶかもしれないのだ。
そして、そんなことはマニュアルにも書いてないかもしれないのだ。

「Stop状態ならもう、ファイルなんかいじってないはずだ」
VS
「いえいえ、うちのシステムはそういう作りじゃないんですぅ~」

ステータスはあやうい。


  • コメント (0)
  • トラックバック (0)
トラックバックURL :
http://www.iwai-masaka.jp/tb.cgi/55660