diff --git a/CMakePresets.json b/CMakePresets.json index 3e525db1..5543041e 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -30,8 +30,7 @@ "cacheVariables": { "CMAKE_CXX_STANDARD": "20", "CMAKE_BUILD_TYPE": "DEBUG", - "CMAKE_CXX_FLAGS": "-fsanitize=thread -fsanitize=undefined", - "CMAKE_LINKER_FLAGS": "-fsanitize=thread -fsanitize=undefined" + "CMAKE_CXX_FLAGS": "-fsanitize=thread -fsanitize=undefined" } }, { diff --git a/include/stlab/concurrency/await.hpp b/include/stlab/concurrency/await.hpp index c6a6c9ae..36d31923 100644 --- a/include/stlab/concurrency/await.hpp +++ b/include/stlab/concurrency/await.hpp @@ -45,7 +45,7 @@ auto invoke_waiting(F&& f) { if (!detail::pts().wake()) detail::pts().add_thread(); #endif - std::forward(f)(); + return std::forward(f)(); } /**************************************************************************************************/ @@ -113,7 +113,7 @@ struct blocking_get_guarded { auto wait_for(const std::chrono::nanoseconds& timeout) -> future { std::unique_lock lock{_mutex}; _timed_out = !invoke_waiting( - [&] { _condition.wait_for(lock, timeout, [&] { return _result.valid(); }); }); + [&] { return _condition.wait_for(lock, timeout, [&] { return _result.valid(); }); }); return _timed_out ? future{} : std::move(_result); } };