1.7.0
This release was created to address a number of issues.
- Building the library now requires a CMake step to generate a configuration file. Prior versions of the library were self-configuring but that was causing issues when headers were included in different compilation units compiled with different options.
- When using
default_executor
a call topre_exit()
is required prior to exiting main or invokingstd::exit()
. It is not necessary if usingstd::quick_exit()
. This allows the executor to shut down so canceled and detached tasks do not run concurrently with exit. blocking_get()
and associated functions have been renamedawait()
- A new operation
invoke_waiting()
was added to hint the portabledefault_executor
when a task is waiting for some condition. - The
await()
does not attempt to steal tasks from the portabledefault_executor
and instead will spin up additional threads (to a limit) to avoid deadlocking.
See more details in changes.md.