This release primarily backports jthread
to thread
for Apple clang and libc++.
- Support for libc++ and Apple clang.
- Conditional
<syncstream>
support.
- CI builds on Apple Silicon.
This release overhauled libfork bringing many changes including:
- The
busy_pool
scheduler. - Custom schedulers supported.
- Tasks support allocators.
- Benchmarks!!
- Many more tests.
- Decoupling scheduling from task graph creation.
- Void tasks no longer require a future.
- Exception handling (tasks now call
terminate()
if they exit with an unhandled exception). - The global
forkpool
thread pool. This functionality will be reintroduced in a future release but in the form of a customisable scheduler.
- New dependencies for tests/benchmarks and a new CMake project structure.
The original version of libfork (then forkpool), it used a global thread pool for all task scheduling.