Что может вызвать сбой присоединяемого потока при вызове join

Когда я вызываю joinThread, я иногда получаю команду std :: system_error с недопустимым аргументом при вызове соединения. Ошибка появляется только при компиляции с помощью gcc, и она не всегда воспроизводима, то есть иногда возникает и не предсказуемо. Кто-нибудь знает, что может вызвать такую ​​ошибку?

Ниже приведена уменьшенная версия моего кода.

class exampleClass
{
public:
exampleClass()
{
}

~exampleClass()
{
joinThread();
}

void doWork()
{
joinThread();
workThread = std::thread(&exampleClass::threadFunction, this);
}

void joinThread()
{
if(workThread.joinable()) workThread.join();
}

protected:
void threadFunction()
{
std::cout << "Do something that requires time..." << std::endl
}

std::thread       workThread;
}

Любая помощь будет принята с благодарностью.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]