mainでsrand()してpthreads_createで作ったスレッド内でrand()すると毎回同じ整数が呼び出されていた。
そこでpthreads_createが呼び出した関数内でsrand(time(NULL))してmainのsrandをコメントアウトすると期待通りの実行結果が得られた。
その際rand()をmutexで扱うなどしても結果は変わらなかったので(そもそもそんな複雑なものでもない)どうやらrand()をマルチスレッドで使うとなんかバグる、という結論に至った。
対症療法的すぎるがとりあえずの解決策ということで覚書。
Discussion