Expand description
パニック回復に対応したロック(Recoverable Mutex)。
AtmOS は panic = "abort" + 自前 #[panic_handler] でプロセス単位にパニックを隔離するが、
巻き戻し(unwind)が無いため、ロック保持中に死ぬと MutexGuard の Drop が走らずロックが
永久に保持されてしまう(以後 NET_LOCK 等を取ろうとした全プロセスがデッドロック)。
RecoverableMutex は保持中のコア ID を記録し、パニックハンドラが
force_release_if_core(cid) で そのコアが保持していたロックだけ を強制解放できる。
他コアが正当に保持しているロックには触れない(クリティカルセクション破壊を避ける)。
Structs§
Constants§
- FREE 🔒
- どのコアも保持していないことを表す番兵値。
Functions§
- selftest
- パニック回復ロックの自己テスト。実際にパニックを起こさず、ガードを leak して
「保持したまま死んだ」状態を作り、
force_release_if_coreが正しく回復することを確認する。 起動時に呼ばれRECLOCK_SELFTEST: PASS/FAILを出力(CI スモークの判定マーカー)。 - unreachable_
guard 🔒