Unverified Commit 6a8b05f1 authored by Dominik Charousset's avatar Dominik Charousset Committed by GitHub

Merge pull request #924

Replace Sleep(0) with yield() call on Windows
parents 206d2012 9c20e8d8
......@@ -152,8 +152,19 @@ public:
if (job)
return job;
}
if (strategies[k].sleep_duration.count() > 0)
if (strategies[k].sleep_duration.count() > 0) {
#ifdef CAF_MSVC
// Windows cannot sleep less than 1000 us, so timeout is conveted to 0
// inside sleep_for(), but Sleep(0) is dangerous so replace it with
// yield()
if (strategies[k].sleep_duration.count() < 1000)
std::this_thread::yield();
else
std::this_thread::sleep_for(strategies[k].sleep_duration);
#else
std::this_thread::sleep_for(strategies[k].sleep_duration);
#endif
}
}
}
// we assume pretty much nothing is going on so we can relax polling
......@@ -202,4 +213,3 @@ public:
} // namespace policy
} // namespace caf
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment