Gauche > Archives > 2011/12/21

2011/12/21 04:26:44 UTCayatoy
#
job-wait/job-killのテストのfailなんですが、多分、t2のjob-waitの中の(job-status job)が返した値がsをバインドした時点から(mutex-unlock! mutex cv timeout)までの間に処理がメインスレッドにスイッチしてjob-mark-killed!(及び誰も待機してない条件変数へのブロードキャスト)をしたときのタイミングっぽいです。その後t2はsが(#fに)バインドされた時点で決定していた動作(条件変数で待機)をするので、t1がjob-run!で放つブロードキャストまでブロック(sleepの終了を待つ。この時点でt1は再びjobのstatus,resultをセット)され、テストコードは'(done 0)を返す。みたいな感じです。多分。
2011/12/21 04:59:48 UTCenami
#
mutex をロックしてないから cond broadcast 空振りってことか
2011/12/21 05:03:15 UTCshiro
#
ありゃまったくそのとおり。なんでロックなしでいけると思ったんだろうT根T根
#
「てんてん」で三点リーダを入力しているんだがタイプミスで「T根T根」になった…