Какую операционную систему и какой glibc вы используете?
Если вы используете основную реализацию pthread (скажем, недавний GNU glibc в Linux), я вполне уверен, что они не сломаны.
Я думаю, что ваш сбой, вероятно, вызван какой-то проблемой в вашем коде или, возможно, неправильным смешением 32-битного и 64-битного двоичного кода.
Не могли бы вы попытаться воспроизвести ваш сбой с помощью как можно меньшего количества строк кода и вставить его сюда?