Функция main() создает поток, который должен жить, пока пользователь не захочет выйти из программы. Поток должен периодически возвращать значения в основные функции. Я попытался сделать что-то подобное, но не работал хорошо -Возвращаемые значения из pthread асинхронно с регулярными интервалами
std::queue<std::string> q;
void start_thread(int num)
{
std::string str;
//Do some processing
q.push(str);
}
int main()
{
//Thread initialization
int i;
//Start thread
pthread_create(&m_thread,NULL,start_thread,static_cast<void *>i);
while(true)
{
if(q.front())
{
std::cout<<q.front();
return 0;
}
}
//Destroy thread.....
return 0;
}
Любые предложения?
как она не работает хорошо? Не могли бы вы уточнить поведение, которое вы наблюдали? – SirDarius
@SirDarius: так как это демонстрирует несколько разновидностей неопределенного поведения, фактическое поведение может быть сложно описать точно. –
@Mike Seymour: Что-то привело плакат к выводу, что все работает неправильно, и это должно быть объяснено в вопросе. «Не работает» действительно не является достаточным отчетом об ошибках по любому стандарту. В этом случае существует много очевидных недостатков, поэтому мы можем помочь. – Stephen