Когда я вызываю 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;
}
Любая помощь будет принята с благодарностью.
Задача ещё не решена.
Других решений пока нет …