- Fixed issues
- [#371]:(stlab#371 include in concurrency/utility.hpp
- The _hold for detach was being done on the executor instead of the continuation. The result was a (silenced) broken exception getting thrown if detach() is called on a ready exception. This would trigger an exception which is caught internally in a packaged task and dropped.
stlab::make_ready_future(stlab::immediate_executor).detach();
- Fixed an issue with the serial queue using a "temporary" executor which was copied into the future shared state.
- Added stealing to blocking_get
- Also cleaned up blocking_get implementation.
- blocking_get_for() added
- Fix for make_exceptional_future and improvements blocking_get_for added
- deprecated blocking_get() with timeout
- Fixing bugs and naming our threads
- Fixed issue with backoff
- min() duration on a clock apparently is not a minimum length duration as documented, but is a negative duration... instead we us a single tick.
- Update utility.hpp
- Fixed issues
- [#363]:(stlab#363) Wrong version in the 1.6.0 release
- Backport the library to support C++14 and later
- Better auto-configuration - no need for compiler flags.
- Supported for threaded wasm using the portable tasking system (auto-configured).
- Fixed issues
- Fixed issues
- #317: Recovery continuations not invoked on broken promises
- Better conan.io support (Many thanks to Fernando Pelliccioni)
- Fix several minor scripting and configuration issues (Many thanks to Fernando Pelliccioni)
- Fix in SerialQueue UnitTest that could lead to dead lock on systems with few cores
-
Fixed issues
-
Enhancement
- Adding Forest container and algorithms
- Fixed issues
-
Fixed issues
-
Enhancements
- Fixed Issues
-
Fixed Issues
-
Enhancements
-
Library Changes
- Now C++17 is required to use the channels (This change was necessary, because the code became really messy to dispatch between copyable, move-only and void types)
-
Additional Comments
- It is necessary to patch std::variant for the combination of clang version <= 7 and stdlibc++. For further details see https://stackoverflow.com/questions/46506387/getstring-for-variants-fail-under-clang-but-not-g and ./travis/patches/patch_std_variant.sh. This is because the clang bug https://bugs.llvm.org/show_bug.cgi?id=31852
-
Fixed Issues
- #154 : Compilation error with gcc
- Race condition in timed blocking_get
-
Enhancements
- The library can now be included as cmake dependency (Many thanks to Austin McCartney)
- Fixed Issues
- #169 : when_all() appears to ignore the passed-in executor
- Fixed Issues
- Fixed Issues
- Library Breaking Changes
- Concurrency Library
- The functionality of channel's
zip
has changed. Now it behaves comparable to the ranges TS zip. The previous functionality is replaced withzip_with
. - The
merge
andjoin
functions are now deprecated and are replaced withmerge_channel<unordered_t>
andmerge_channel<round_robin_t>
.
- The functionality of channel's
- Concurrency Library
- Fixed Issues
- Library Additions
- Concurrency Library
- Adding usage of std::optional, std::variant or std::experimental::optional when compiling with C++17 mode. So the dependency to boost.optional is optional.
- Adding co-routine support for futures. (Only for VS 2017 and clang 5.0)
- Adding main_executor for Qt support
- Concurrency Library
- Fixed Issues
- Fixed Issues
- #94 : Use of moved executor in futures.hpp:1234
- #93 : Stack overflow with exception handling in futures
- #85 : (non-default) Executors and
make_ready_future
- #80 :
stlab::async
will not accept non-const reference parameters - #79 :
when_all
does not support continuing futures that returnvoid
- #69 : Support move-only tasks
- #59 :
task_system
andnotification_queue
doesn't work with move only lambda - #26 : channel TODO get process state under mutex?
- #18 : future TODO
get_try()
- Library Additions
- Concurrency library
- serial queue
- task
- Added feature requests #95 (flatten futures) and #38 (reduction on
future<void>
). Reduction of futures is now supported. So afuture<future<T>>
is reduced tofuture<T>
. Currently this is restricted to copyable typesT
.
- copy on write
- scope
- Test library
- annotate
- regular
- move-only
- Concurrency library
- Build & Test Improvements
- CMake overhaul
- Extended Travis CI support
- AppVeyor support
- Breaking Changes
- With Issue #85 the interface of
make_ready_future
andmake_exceptional_future
now require an executor as a second parameter.
- With Issue #85 the interface of
- Added the concurrency library:
- futures
- executors
- channels