В том то и дело что свой но после завершения треда стек не расвобождается пока кто нибудь не заберет код возврата (точнее void*). Для того чтоб такой фигни не происходило нужно треды "отсоединять" от основного патока для этого есть функция detach - и у меня помнится она работала нормально, но я сейчас ее не пользую а создаю треди сразу детачнутими.
Есть подозрение, что речь не о pthreads, а о LinuxThreads, т.к. там такая фигня проявляется.
Когда выходит основной процесс (цивилизованно через exit или через падение в корку), то manager thread это обнаруживает и шлёт всем-всем-всем SIGKILL (как я понял, независимо от его attached/detached state), так что твой thread1 умирает в sleep. :)
стоять мурзик (С) Гоблин. вопрос еще про pthread_exit.. если я из работающего потока вызову эту функцию то что с ресурсами будет. в доках не нашел внятного объяснения. может расскажет кто или урл подкинет?