Я использую p_threads в своем коде на Unix. В моей основной программе у меня есть узел потока, который создает 2 потока, один из которых выполняет чтение из стандартного ввода с помощью getline. Все это работает нормально. За исключением того, что в какой-то момент во время моего кода мне нужно «перезапустить мой поток, который читает со стандартного ввода». И когда я это делаю, я ничего не могу прочитать со стандартного ввода.
Любые предложения, что я могу делать неправильно ???/
Спасибо.
Это та часть, где я читаю со стандартного ввода
void* parseCmd(void* s)
{
sigset_t new2;
struct sigaction act;
sigemptyset(&new2);
sigaddset(&new2,SIGINT);
pthread_sigmask(SIG_UNBLOCK, &new2, NULL);
act.sa_handler = interrupt;
sigaction(SIGINT, &act, NULL);
signal(SIGUSR1, signal_Handler);
std::string input("");
while (1)
{
std::cout << "SERVANT > ";
std::getline(std::cin, input);
doTheWork(input);
cin.clear();
std::cout << std::endl;
if(global_shutdown==1 || auto_global_shutdown==1)
break;
}
cout<<"cmd thread exit.Main\n";
return 0;
}