Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
shared_result
thread_started_callback
and thread_terminated_callback
added to runtime
class to allow thread-lifecycle monitoringasync_condition_variable
implementationasync_lock
implementationwhen_any
data race fixstd::invalid_argument
on null executorresult
optimizationsgenerator
implementationNote: this version breaks API
make_delay_object
returns a lazy_result
instead of result
.when_any
+ when_all
return a lazy_result
instead of result
, require resume-executor as their first argument.resume_on
improvementsbinary_semaphore
polyfill for appleclangdeprecation of await_via
and resume_via
addition of lazy_result
addition of resume_on
when_all
+ when_any
rewrite
shared_result
optimizations
examples rewrite
note: CI/CD still fail on TSAN tests because of google/sanitizers#1259 . In the next release, the library CI/CD might move to clang-12, which is supposed to fix the issue.
note: This version breaks ABI: await_via
and resume_via
are deprecated. use resume_on
instead.
This version breaks ABI: executors and the timer queue throw runtime_shutdown
exception when accessed after the runtime object is destroyed. executor_shutdown
and timer_queue_shutdown
are deprecated.
Note: the CICD fails because of a regression in Clang's thread sanitizer. the bug is detailed in https://github.com/google/sanitizers/issues/1259
Tests were run locally, as Github actions still doesn't support clang-11.
Note: CI/CD fail as Clang 11 is still not supported on Github Actions. Tests were run locally on Window, Linux and Mac.
Note: This version breaks ABI if applications implemented their own executors.