Apply the new patch from Davis (#2929)

pull/2930/head v19.24.3
Juha Reunanen 6 months ago committed by GitHub
parent d5909ed977
commit 1529b690da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -92,16 +92,22 @@ namespace dlib
void wait ( void wait (
) const ) const
{ {
std::unique_lock<std::mutex> cs(m.cs, std::defer_lock); std::unique_lock<std::mutex> cs(m.cs, std::adopt_lock);
cv.wait(cs); cv.wait(cs);
// Make sure we don't actually modify the mutex. Since the calling code will have locked
// it and it should remain locked.
cs.release();
} }
bool wait_or_timeout ( bool wait_or_timeout (
unsigned long milliseconds unsigned long milliseconds
) const ) const
{ {
std::unique_lock<std::mutex> cs(m.cs, std::defer_lock); std::unique_lock<std::mutex> cs(m.cs, std::adopt_lock);
auto status = cv.wait_until(cs, std::chrono::system_clock::now() + std::chrono::milliseconds(milliseconds)); auto status = cv.wait_until(cs, std::chrono::system_clock::now() + std::chrono::milliseconds(milliseconds));
// Make sure we don't actually modify the mutex. Since the calling code will have locked
// it and it should remain locked.
cs.release();
return status == std::cv_status::no_timeout; return status == std::cv_status::no_timeout;
} }

Loading…
Cancel
Save