Привет всем!
Столкнулся с непонятной причиной - досрочным завершением работы pthread...
Вот пример:
#include <iostream>
#include <pthread.h>
#include <errno.h>
pthread_t thread1;
void start ( void ) {
for ( int i = 0; i < 100000; ++i ) {
std::cout << i << std::endl;
}
std::cout << "Happy End!" << std::endl;
}
void * threadFunc ( void * data ) {
start();
return NULL;
}
int main ( void ) {
std::cout << "RET CODE: " << pthread_create ( &thread1, NULL, threadFunc, NULL ) << std::endl;
return 0;
}
g++ test.cpp -o test -lpthread
Программа должна в фоновом режиме вывести на консоль все 9999 чисел и написать Happy End!
При запуске каждый раз прога доходит до определенного числа и все... ни ошибки ни чего... Просто завершается.
вот что получилось:
...
2642
2643
2644
2645
2646
$
Все... и никаких ошибок. Каждый раз доходит до разных чисел.
Не понимаю в чем причина у меня это кусок раньше работал, а потом заметил что перестал работать должным образом.
Возможно причина в параметрах Linux ядра?
Остальные проги нормально работают, хотя в GNU/Linux много прог хочет pthread... Почему это не работает?
Зарание спасибо!