0

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;
}

どんな助けでも大歓迎です。

4

1 に答える 1