X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fthread.cpp;h=ef5ae857e30580822b5c05cf2406a413a6eb05f6;hp=a715d44ee17b2e5844e4be101b246041e9bc9c7d;hb=be77406a55d1840862237cffe153dc08a83108d3;hpb=26dabb1e6bcd8035f0f3516c4358a73f2b041a1c;ds=sidebyside diff --git a/src/thread.cpp b/src/thread.cpp index a715d44e..ef5ae857 100644 --- a/src/thread.cpp +++ b/src/thread.cpp @@ -38,9 +38,9 @@ namespace { // when start_routine (and hence virtual idle_loop) is called and when joining. template T* new_thread() { - T* th = new T(); - th->nativeThread = std::thread(&ThreadBase::idle_loop, th); // Will go to sleep - return th; + std::thread* th = new T; + *th = std::thread(&T::idle_loop, (T*)th); // Will go to sleep + return (T*)th; } void delete_thread(ThreadBase* th) { @@ -50,7 +50,7 @@ namespace { th->mutex.unlock(); th->notify_one(); - th->nativeThread.join(); // Wait for thread termination + th->join(); // Wait for thread termination delete th; } @@ -61,7 +61,7 @@ namespace { void ThreadBase::notify_one() { - std::unique_lock(this->mutex); + std::unique_lock lk(mutex); sleepCondition.notify_one(); }