Index: src/libchcore/TWorkerThreadController.cpp =================================================================== diff -u -N -r0c48142d3db406c32c05d7afdf77da45b2459b34 -r89f857792bba8752de98ddd477949e45cef5ba5a --- src/libchcore/TWorkerThreadController.cpp (.../TWorkerThreadController.cpp) (revision 0c48142d3db406c32c05d7afdf77da45b2459b34) +++ src/libchcore/TWorkerThreadController.cpp (.../TWorkerThreadController.cpp) (revision 89f857792bba8752de98ddd477949e45cef5ba5a) @@ -95,11 +95,11 @@ SignalThreadToStop(lock); } - void TWorkerThreadController::WaitForThreadToExit() + void TWorkerThreadController::WaitForThreadToExit(DWORD dwMiliseconds) { boost::upgrade_lock lock(m_lock); - DWORD dwRes = WaitForSingleObject(m_hThread, INFINITE); + DWORD dwRes = WaitForSingleObject(m_hThread, dwMiliseconds); if (dwRes == WAIT_OBJECT_0) { if (!::ResetEvent(m_hKillThread)) @@ -198,12 +198,12 @@ THROW_CORE_EXCEPTION_WIN32(eErr_CannotSetEvent, GetLastError()); } - void TWorkerThreadController::WaitForThreadToExit(boost::upgrade_lock& rUpgradeLock) + void TWorkerThreadController::WaitForThreadToExit(boost::upgrade_lock& rUpgradeLock, DWORD dwMiliseconds) { if (!m_hThread) return; - DWORD dwRes = WaitForSingleObject(m_hThread, INFINITE); + DWORD dwRes = WaitForSingleObject(m_hThread, dwMiliseconds); if (dwRes == WAIT_OBJECT_0) { if (!::ResetEvent(m_hKillThread))