HISTORY¶
1.3.2¶
[FIX] #16 : document of
LIBCOPP_DISABLE_ATOMIC_LOCK
andLIBCOPP_DISABLE_THIS_MT
.[FIX] #18 :
'xx' is not a member of 'xxx {aka xxx}'
.[OPTIMIZE]
cotask::task
can capture all integer type of return value now.[FIX] Remove warning of c++20 coroutine options when project use both languages of cxx and not cxx
1.3.1 (2020-07-06)¶
Fix compiler version checker for C++20 coroutine
Add cmake interface option and features for targets
Update documents
1.3.0 (2020-07-02)¶
[OPTIMIZE] Using cmake export to generate module files
[OPTIMIZE] Change default visibility of symbols to hidden, we support dll on windows now.
[FIX] Rename
task::await
intotask::await_task
, Some compile don’t allowawait_task
as function name.[BOOST] Merge boost.context 1.73.0
[FEATURE] Implement context of windows fiber and
SetUnhandledExceptionFilter
is available to catchunhandled exception in coroutine action[OPTIMIZE] Catch and rethrow unhandle exception after coroutine resumed when using C++11 or upper, most APIs are exception safe now.
[OPTIMIZE] Remove TTASK_MACRO in cotask::task, task id now is always set
uint64_t
and use the id allocator with thread cache.[OPTIMIZE] Fix
Warning: client switching stacks?
in unit test when enable valgrind support.[FEATURE] Enable
-DLIBCOPP_FCONTEXT_USE_TSX=ON
for default.
BREAK CHANGES & UPGRADE GUIDE FROM 1.2.X¶
Rename
cotask::task::await
intocotask::task::await_task
Replace
cotask::task<TCO_MACRO, TTASK_MACRO>
withcotask::task<TCO_MACRO>
, we don’t allow to custom id allocator now.Replace
cotask::core::standard_int_id_allocator<uint64_t>
withcopp::util::uint64_id_allocator
, we don’t allow to custom id allocator now.Require gcc 4.7+, MSVC 14+(Visual Studio 2015)>)
Require cmake 3.12.0 or upper
1.2.1 (2019-10-04)¶
[OPTIMIZE] Add options to disable TLS usage for this_task and this_coroutine to reduce cache miss on single thread situation.
[OPTIMIZE] Implement jump_to(…) as static inline to reduce code cache miss.
[OPTIMIZE] Implement coroutine_context_callback(…) as static local symbol to reduce code cache miss.
1.2.0 (2019-08-20)¶
[OPTIMIZE] Add more unit test.Increase coverage to 90%+.
[OPTIMIZE] Rewrite toolchain detection scripts, support clang-cl now.
[BOOST] merge boost.context 1.71.0.
[FIX] Fix a coredump problem when task_ptr is reset when await_task other tasks.
[OPTIMIZE] Optimize timer implement, task_manager support modify task timer now.
[OPTIMIZE] A task can only be added to one task_manager now, and when finish task with task’s API, task_manager will also be cleanup.
[OPTIMIZE] Fix some warning when compiling with gcc 9+ and clang 8+.
[OPTIMIZE] Use pthread for TLS when both c++11 thead_local and pthread are available. It will reduce the minimal stack size.
[OPTIMIZE] Fix and add some example codes and documents.
2018-12-07¶
[OPTIMIZE] add adaptor for vcpkg
[OPTIMIZE] using GNUInstallDirs for all directories
[BOOST] merge boost.context 1.67.0
[OPTIMIZE] add libcopp-config.cmake and libcopp-config-version.cmake for cmake module
[OPTIMIZE] add then and await_task API for easier usage
[OPTIMIZE] add /Zc:__cplusplus for MSVC to make __cplusplus to the standard value.
[OPTIMIZE] fix a guess to x86_64 environment
[OPTIMIZE] add more API for statistics
[FIX] fix the problem that calling compare_exchange_weak failed will lead the cotask to exit
[OPTIMIZE] merge the latest unit test framework, now we will support more readable output when test failed.
[CI] We use xenial to build in linux now.
2018-01-01¶
[BOOST] merge boost.context 1.66.0
[OPTIMIZE] add support for Intel Transactional Synchronisation Extensions (TSX)
[OPTIMIZE] fix a warning reported by clang-analyzer.
[CI] update README.md and automatic documents.(published at https://libcopp.atframe.work)
[FIX] make sure all the allocated stacks are always greater than the configure value after reloaded when using stack pool.
[FIX] allow segmented stacks when using clang and llvm.
[OPTIMIZE] using the new script to run clang-analyzer.
[OPTIMIZE] optimize the doxygen output and fix some markdown synax not supported by doxygen.
2017-10-01¶
[OPTIMIZE] optimize cmake files for all target
[OPTIMIZE] update samples and readme(fix sample for stack pool in README.md)
[CI] add gcc 7
[OPTIMIZE] using -std=c++17 for gcc/clang and /std:c++17 for MSVC 15(2015) and upper
2017-06-11¶
[OPTIMIZE] V2 framework and APIs completed, all reports in clang-analysis and cppcheck are fixed.
[CI] benchmark and samples enabled in v2 branch
[CI] add sample code in README.md into CI
2017-05-10¶
[BOOST] merge boost.context 1.64.0
[OPTIMIZE] add stack pool manager and unit test
[OPTIMIZE] reduce memory fragment when allocate coroutine task and task action
[CI] benchmark and sample will always be run in Travis CI and Appveyor CI
2016-06-16¶
[BOOST] merge boost.context 1.61.0 and use the new jump progress(see https://owent.net/2016/1270.html for detail)
[BOOST] enable valgrind support if valgrind/valgrind.h exists
[CXX] use cmake to detect the function of compiler
[OPTIMIZE] using pthread key when c++11 TLS not available
[OPTIMIZE] remove coroutine_context_safe_base.coroutine_context_base is also thread safe now
[OPTIMIZE] remove all global variables of cotask
[OPTIMIZE] remove std/thread.h, add noexpect if available
[CI] CI use build matrix to test more compiler
[BUILD] use RelWithDebInfo for default
2016-02-27¶
v0.2.0, this version is used in our server for about one year.
2015-12-29¶
add support for valgrind
add ci configure
merge boost.context 1.60.0
add -fPIC, fix spin lock
some environment do not support TLS, make these environment can compile success
2014-07-25¶
v0.1.0