if で弾かれた直後 else if を評価する間の一瞬のタイミングで a が化けたのを検出するということなのでしょうか? それが問題になるような確率で発生するのであれば この if 文全体の前後でかなり高確率で化けてるでしょうし、 それよりもはるかに大きな確率でロジック自体のバイナリがダメージを受けてる気がするのですが? 例えば a == 1 の 1 や a != 1 の 1 が化けてたり、je が jne に化けてたり
仮に a の値化けを検出するにしても a = b = 0; のように値を別の変数にも複製しておいて if (a && a == b) { ... } else if (!a && a == b { ... } else { エラー } とした方が実用的なのでは?
普通にやりませんか? (スコア:1)
制御機器のプログラムだと、物理メモリアクセスに対して常時パリティチェックをかけるような専用タスクが走らせるのは
ごく普通にありますよ。
あと、たとえば
if a==1 {
// aが1のとき
func_1();
} else if a!=1 {
// aが1以外のとき
func_2();
} else {
// 正常ならここは通らないはず
kick_NMI();
}
などというコーディ
このコードの意図が理解できない (スコア:2, 興味深い)
if で弾かれた直後 else if を評価する間の一瞬のタイミングで
a が化けたのを検出するということなのでしょうか?
それが問題になるような確率で発生するのであれば
この if 文全体の前後でかなり高確率で化けてるでしょうし、
それよりもはるかに大きな確率でロジック自体のバイナリがダメージを受けてる気がするのですが?
例えば a == 1 の 1 や a != 1 の 1 が化けてたり、je が jne に化けてたり
仮に a の値化けを検出するにしても
a = b = 0;
のように値を別の変数にも複製しておいて
if (a && a == b) { ... }
else if (!a && a == b { ... }
else { エラー }
とした方が実用的なのでは?
uxi
Re:このコードの意図が理解できない (スコア:1)
タレコミのツイート [twitter.com]
「宇宙線が降ってきてメモリのビットが狂う」「ハードウェアのバグでメモリのビットが狂う」というのは非常にまれな現象だけど、Chromeくらいのユーザ数規模になるとけっこう日常的に起きます。なのでChromeで走ってるGCには、それらのビット異常を検知する機構をわざわざ入れてます。
実際の仕組みは知りませんが、プログラマが意識しなくてもGCがやってくれるところがポイントなんですかね。
Re: (スコア:0)
ノードの管理情報に冗長性持たせてGCでチェックしてるとかその程度の話じゃない?