Если первый из двух ожидаемых аргументов pthread_join () имеет значение NULL, во время выполнения может произойти что угодно (плохое). Из спецификации на www.opengroup.org: " Поведение не определено , если значение, указанное в аргументе потока для pthread_join (), не ссылается на присоединяемый поток."
Для второго аргумента pthread_join () принимается NULL.
РЕДАКТИРОВАТЬ: Действительно, некоторые реализации могут указывать поведение. Проверьте страницу руководства для pthread_join в вашей системе.