PV1Linux上のマルチスレッドプログラムでabort()を呼ぶとまれにクラッシュします。これはそもそも要求仕様が狂ってるのでどうしようもないのです。abort()がasync-signal-safe、つまりシグナルハンドラーから呼び出せることを要求している。abortの中でロックはとれないこの相反する要求を解決するために意図定期にioのロックをとらずにstdioのデータ構造を触っているので別スレッドが微妙なタイミングで同じ場所を触っていると危険があぶない。これはヘタにロックをとりにいってデッドロックするよりかはクラッシュした方が実害がするくない(だって、どうせ終わるつもりだったんだろ?)という理屈SolarisとかだとSpecをガン無視してシグナルハンドラから呼べない仕様にして、ロックをきちんととるのでこの問題はおきませんね。そのかわり、シグナルハンドラからabort()したり別スレッドがロック取りっぱなしにしてるとデッドロックするけど。(0)ウォッチこの質問への回答やコメントをメールでお知らせします。