Kouhei Sutou
kou****@cozmi*****
2008年 9月 12日 (金) 08:26:34 JST
須藤です。 2008/09/12 1:54 morita <morit****@razil*****>: > 現在のテストコードですと、sen_pat_lockないしsen_hash_lockを実行した直後に > cut_test_context_pass_assertion()に入りますが、 > その内部からcut-xml-stream.c:flow()が呼ばれ、stream->mutexをlockしようとします。 > この時にデッドロックが発生する場合があるようです。 すみません。。。私の方が悪かったですね。。。 Cutterの中までみてもらってすみませんでした。。。 > sen_pat_lock(sen_hash_lock)とsen_pat_unlock(sen_hash_unlock)との間では > cut_assert_*を呼ばないようにすることでこの問題を回避することができるようです。 > (他にも対処方法があるかもしれませんが) > > 添付のパッチを適用すると、手元の環境ではデッドロックが発生しなくなりました。 こちらでもデッドロックしなくなったので、↑という感じでコミットしました。 > (omission以外は全てのテストにパスするようになりました!) おぉ! omissionのやつ(sen_ii_create()のpathにNULLを渡すとどうなるかテスト)は どうしたらよいでしょうか?pathにNULLを渡すやつが悪いんだ、であれば、あ のテストはいらないと思いますし、pathにNULLを渡されたらNULLを返したい、 ということであれば、omissionを外してテストを実行するようにした方がよいと 思っています。