Workaround TSAN CI bug

fix #2499
This commit is contained in:
Richard Hodges
2022-08-16 10:26:23 +02:00
parent 00293a6adb
commit 3f7f2572b0
2 changed files with 18 additions and 8 deletions

View File

@ -1,3 +1,7 @@
* Workaround TSAN CI bug.
--------------------------------------------------------------------------------
Version 332: Version 332:
* Fix beast::zlib warnings * Fix beast::zlib warnings

View File

@ -122,15 +122,21 @@ void
enable_yield_to:: enable_yield_to::
spawn(F0&& f, FN&&... fn) spawn(F0&& f, FN&&... fn)
{ {
asio::spawn(ioc_, // dispatch of spawn is a workaround for
[&](yield_context yield) // https://github.com/boostorg/beast/issues/2499
asio::dispatch(ioc_,
[&]
{ {
f(yield); asio::spawn(ioc_,
std::lock_guard<std::mutex> lock{m_}; [&](yield_context yield)
if(--running_ == 0) {
cv_.notify_all(); f(yield);
} std::lock_guard<std::mutex> lock{m_};
, boost::coroutines::attributes(2 * 1024 * 1024)); if(--running_ == 0)
cv_.notify_all();
}
, boost::coroutines::attributes(2 * 1024 * 1024));
});
spawn(fn...); spawn(fn...);
} }