Gauche > Archives > 2009/09/09

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