#netbsdでは毎回contからterminateの間でtarget threadがscheduleされないんでしょうね。
#おお、確かにenamiさんのパッチ当てると通りますね
#Lingerからこちらに移ってたのですね。というわけでテスト投稿m(__)m
#一対一に対応している単純な場合はlock&push, popするマクロにでも置き換えればいいかな。複雑な場合はちゃんとcond_waitを使って書き換える。
#中にcancel pointがなければそのままで。
#むー、LOCK/UNLOCKの間にcancel pointがある箇所はすべからく同様に書き換えるべきなんでしょうね。
#でしょうね。ほとんどは単純な場合みたいですけど。
#しかしただでさえLOCK重いのにオーバヘッド増やすのもなんだなあ。LOCK/UNLOCKはcancel pointをまたがないように書くのが正解か。
#原則として。
#実際にはcancel pointはさんでないのも多いのかも。class.cだとcond_wait系だけかな。memqとかdeleteXとかって平気ですよね、きっと。
#はい、そのへんは (あとeq, eqvのhashtable検索も) 間にヤバい処理をはさまないように気をつけてはいます。
#ただ、気をつけてるだけなので見落としはあるかも。
#静的検証でこういう事例がチェックできるといいんですけどねぇ。