Commit Graph

  • fcbd6c9816
    Merge 6f1bcbc8a8d56f40883cea518f648d358a20e69d into 23a724cf5c3026155550dc802d283d713fdfd97e Spongman 2025-03-09 20:57:13 +00:00
  • 6f1bcbc8a8
    fix clang template argument list warning Spongman 2025-03-09 13:49:56 -07:00
  • 23a724cf5c Ensure that continuables that are resolved immediately are always symmetrically transferable master 4.2.2 Rogiel Sulzbach 2023-09-09 23:30:17 -03:00
  • 66319e1cef Ensure that continuables that are resolved immediately are always symmetrically transferable Rogiel Sulzbach 2023-09-09 23:30:17 -03:00
  • c7f5b1cbaf CI: Use recursive checkouts Denis Blank 2023-09-10 12:52:48 +02:00
  • d1f9306eee Add a github workflow file for CI * Remove the travis CI Denis Blank 2023-09-10 12:46:07 +02:00
  • 0641a29f42 Fix a build issue on MSVC 2022 related to transforms wait Denis Blank 2023-09-10 12:12:06 +02:00
  • 94dc953ba9 Publish gh-pages Denis Blank 2020-04-09 19:53:59 +02:00
  • f7f304e971 fix clang coroutines detection 4.2.1 Piers Haken 2022-12-20 15:04:05 -08:00
  • 0dd9eae9f6 fix clang coroutines detection Piers Haken 2022-12-20 15:04:05 -08:00
  • 63e3ed4edc Fix incorrect initialization of unsafe_locker Robert Konklewski 2022-09-05 09:45:58 +02:00
  • d1f8a032f7 Fix incorrect initialization of unsafe_locker Robert Konklewski 2022-09-05 09:45:58 +02:00
  • b51be39e71 Fix Stopping a continuable in a failure handler makes wait() hang forever * Closes #46 * Closes #48 4.2.0 Denis Blank 2022-06-02 01:01:26 +02:00
  • 813ed0878d Add handler invocation tests Yuan Yao 2022-05-21 17:01:56 +08:00
  • 18e644045f Recover continuable after invoking void fail handlers, s.t. continuable after void fail handlers invoked can be wait. Solve second case of issue #46. Yuan Yao 2022-05-19 22:01:49 +08:00
  • ed8310e345 Year and version update Denis Blank 2022-01-20 08:37:34 +01:00
  • 01f9dbd1f4 Add support for stable coroutines (/await:strict and -fcoroutines) * The definition CONTINUABLE_HAS_COROUTINE now indicates support for coroutines, while CONTINUABLE_HAS_EXPERIMENTAL_COROUTINE is added if the experimental version is used. Denis Blank 2022-01-20 07:54:45 +01:00
  • 2fcc2bf281 Update connection-seq.hpp sTabishAzam 2021-11-11 11:42:27 +05:00
  • 809f82673a
    Update connection-seq.hpp sTabishAzam 2021-11-11 11:42:27 +05:00
  • ace3317f65 Minor improvement Denis Blank 2021-10-22 08:03:34 +02:00
  • e6f817ca7b Add the void(...) asio handler overload to the use_continuable initiation token * Makes it possible to use the initiation token with dispatch/post * Ref #44 Denis Blank 2021-10-22 07:53:20 +02:00
  • e2b5fc36fe Add continuable::via to change the invocation chain to the given executor Denis Blank 2021-10-20 07:35:56 +02:00
  • 6bffb44d2b Fix a race condition in cti::transforms::wait() * Thanks to p4654545 for reporting this issue and providing a reproducible example * Closes #38 4.1.0 devel Denis Blank 2020-11-03 17:26:20 +01:00
  • 48c6abf5f2 Ensure that the example given in #34 compiles in the CI * Ref #34 Denis Blank 2020-08-10 18:29:46 +02:00
  • f57c5898eb Improve the documentation of the fail handler * State that the exception of type exception_t can be passed with an initial state. * Ref #32 Denis Blank 2020-04-09 19:53:36 +02:00
  • 8187c16ede Improve the use_continuable_t asio completion tokens such that special mappings are aptable * Also allow to ignore certain error types through use_continuable_ignoring * Ref #32 Denis Blank 2020-04-09 17:23:01 +02:00
  • d80f5ef3ec Make the wait transform throw a wait_transform_canceled_exception on cancellation Denis Blank 2020-04-09 16:03:47 +02:00
  • 5f84de0e86 Handle the cancellation of continuables used in co_await expression correctly * Throws a await_canceled_exception now which automatically gets converted to a default exception type again if it becomes unhandled in the handler. * Ref #32 Denis Blank 2020-04-09 15:24:54 +02:00
  • 8e63a45840 Increase the version to 4.1.0 Denis Blank 2020-04-09 15:13:36 +02:00
  • 61826817c7 Add the 4.0.0 amalgamation to the documentation * Closes #31 Denis Blank 2020-04-07 22:31:32 +02:00
  • 735697026b Update the 4.0.0 changelog Denis Blank 2020-04-06 17:53:15 +02:00
  • 9593ba120c Add a quick tour to the readme 4.0.0 Denis Blank 2020-04-06 17:36:42 +02:00
  • 33bfc490ef Rename cancel() to stop() and make cancel() return a cancellation result instead Denis Blank 2020-04-05 00:22:30 +02:00
  • 77faf3120f 4.0.0 estimated changelog Denis Blank 2020-04-05 00:15:35 +02:00
  • 26cd377831 4.0 version increase Denis Blank 2020-04-04 23:34:56 +02:00
  • 923843cd44 Update function2 Denis Blank 2020-04-04 23:32:36 +02:00
  • 8c1a79d17b Update the copyright year Denis Blank 2020-04-04 23:31:20 +02:00
  • 5fbc9c4a59 Some doc fixes Denis Blank 2020-04-04 23:27:32 +02:00
  • adc75655f4 Adapt the required boost versions for the async initiate * Also respect asio and boost major versions Denis Blank 2020-04-04 22:47:09 +02:00
  • 1e39bd85dd Replace the result<...> implementation by a lighter one * result<...> only moveable now, the conditional copy capabilities were removed * If you require the optional copy capability use a std::variant implementation of your choice * Closes #13 Denis Blank 2020-04-04 20:41:32 +02:00
  • 5f8b2aa317 Fix example code in the tutorial documentation * Closes #30 Denis Blank 2020-04-04 21:56:54 +02:00
  • 37359dec0b Fix infinite recursion on Clang if the compiler attempts to continue on best effort * The library triggers a static_assert correctly if a callable can't be called with a subset of its arguments but it seems like this is not enough to make the compiler stop causing the generation of a 0 - 1 -> std::size_t::max length index sequence which obviously causes infinite work. * Reproducible with: `` cti::make_continuable<std::string>([](cti::promise<std::string> promise) { promise.set_value("hello"); }).then([](int num) { // }); `` * Closes #21 Denis Blank 2020-04-04 19:27:35 +02:00
  • 2c76e6c367 Split the async tests into their own test case Denis Blank 2020-04-04 17:08:36 +02:00
  • 0fb66a7eec Fix the ci build when exceptions are disabled Denis Blank 2020-04-04 02:50:04 +02:00
  • c69385be5f Implement the wait transforms tests Denis Blank 2020-04-04 01:29:11 +02:00
  • ab9669fa2a Implement wait, wait_for and wait_until transforms properly * wait is implemented by a atomic and default condition variable. * wait_for and wait_until are expensive since we can't assume anything about the environment thus we have to allocate a persistent frame. Denis Blank 2020-04-04 01:11:27 +02:00
  • df4d6ed971 Start to revise transforms Denis Blank 2020-04-04 00:04:51 +02:00
  • 957d3fa375 Align the cancel behaviour of result to the one used in the unhandled exception handler * Introduce cancellation_result to represent a cancelled async task * Add cancellation unit tests * This doesn't allow cancellation of continuables, it is meant for treating the special state action canceled on the receiver side. Cancellation of a chain is still up to the user. Denis Blank 2020-04-03 20:54:15 +02:00
  • c8c4325b5b Fix the unit tests by providing an ASSERT_ASYNC_CANCELLATION Denis Blank 2020-04-03 19:57:46 +02:00
  • f1e9255eb9 Fix the test header includes Denis Blank 2020-04-03 19:47:42 +02:00
  • 85c0d76c7c Make make_cancelling_continuable throw an default constructed exception_t * This behaviour now aligns on how cancellation is handled in the unhandled exception handler Denis Blank 2020-04-03 19:44:49 +02:00
  • ca26bbbc87 Remap asio::error::basic_errors::operation_aborted to a default constructed exception_t * Add a successful wait on the asio async timer * Closes #27 * Closes #28 Denis Blank 2020-04-03 19:37:51 +02:00
  • 564d134c75 Improve the clang-tidy and clang-format config Denis Blank 2020-04-03 18:13:41 +02:00
  • f7e00bcc8d Store std::exception::what() automatically before calling TRAP on unhandled exceptions * Makes it easier to inspect the message in debuggers Denis Blank 2020-04-03 17:44:40 +02:00
  • 89031d932c Rename cti::asio_token to cti::use_continuable * support -> external Denis Blank 2020-04-03 17:25:52 +02:00
  • 1a1c7b68c6 Base implementation of an ASIO completion token integration * Bump the asio version to 1.41 * Move headers that require an external dependency to include/continuable/support * Ref #28 * Ref #27 Christos Stratopoulos 2019-12-05 11:57:35 -05:00
  • 0b1b284e3a Add continuable_base::is_ready and continuable_base::unpack. * Can be used to specialize the asynchronous control flow on immediate available asynchronous results mostly returned by: - make_ready_continuable - make_exceptional_continuable * Usable to avoid longer unnecessary synchronous callback nestings. * cti::query_arg_t was renamed into cti::unpack_arg_t. * The continuation overload nowreturns result<Args...> rather than std::tuple<Args...>. * Add is_ready optimizations to make_exceptional_continuable. Denis Blank 2019-12-26 05:27:13 +01:00
  • 6470c612b4 update example for changes Christos Stratopoulos 2019-12-10 14:50:15 -05:00
  • 87bf8c0bd9 move completion token to cti namespace Christos Stratopoulos 2019-12-10 14:49:33 -05:00
  • f09fe50998 streamline error handling approaches Christos Stratopoulos 2019-12-10 14:45:10 -05:00
  • fb7074cc87 use attorney::create_from and remove unnecessary conditional_t Christos Stratopoulos 2019-12-10 13:27:05 -05:00
  • 4f220df1d7 remove unnecessary macro guard for auto return type Christos Stratopoulos 2019-12-10 13:26:04 -05:00
  • 36b3a3040c update to handle need to specify erased return type Christos Stratopoulos 2019-12-09 15:07:27 -05:00
  • 088120db71 rename to CTI_DETAIL_ASIO_NAMESPACE and undef after use Christos Stratopoulos 2019-12-06 15:14:32 -05:00
  • 932c93536b check in asio support files Christos Stratopoulos 2019-12-06 11:41:36 -05:00
  • b39fe3362e add new example Christos Stratopoulos 2019-12-06 11:40:59 -05:00
  • f057eeb86d add interface library for asio example deps Christos Stratopoulos 2019-12-05 12:35:48 -05:00
  • 912fcfad85 bump version comment Christos Stratopoulos 2019-12-05 12:34:38 -05:00
  • 359a26d96c fix include format Christos Stratopoulos 2019-12-05 12:28:34 -05:00
  • cb9cefa4f3 move gtest to newly created support directory Christos Stratopoulos 2019-12-05 12:20:44 -05:00
  • 16f16847da bump asio version Christos Stratopoulos 2019-12-05 11:57:35 -05:00
  • 117a716de1 Test the class which represents exception_t against true before running unhandled exception handlers. * This allows cheap cancellation of the control flow by passing a default constructed exception_t object to set_exception. * Since possible representatives like - std::exception_ptr - std::error_code - std::error_condition can be default constructed we have to test them anyway before possibly rethrowing them. Denis Blank 2019-11-16 17:13:23 +01:00
  • cacb84371a Add MSVC 16 to the CI Denis Blank 2019-09-28 17:37:01 +02:00
  • 92d8bbad36 Fix the MSVC 16 build Denis Blank 2019-09-28 17:29:30 +02:00
  • 0afdbec2cc Upgrade the dependencies Denis Blank 2019-09-26 20:55:15 +02:00
  • ffb3db7089 Fix the asio example * Attempt to fix the GCC warning in a different way Denis Blank 2019-09-02 01:03:28 +02:00
  • 7aff2c0d9b Show the submodule revisions in Travis CI Denis Blank 2019-09-02 00:52:30 +02:00
  • 959f059a25 Fix a build error Denis Blank 2019-09-02 00:45:53 +02:00
  • 91d51e6543 Attempt to fix the clang/GCC build Denis Blank 2019-09-02 00:37:37 +02:00
  • 5e8bbe7c72 Use TYPED_TEST_SUITE instead of deprecated GTest TYPED_TEST_CASE Denis Blank 2019-09-02 00:22:59 +02:00
  • dce0fbcffe Clean the playground since the test was moved into the unit tests cancelable_work Denis Blank 2019-09-02 00:17:17 +02:00
  • a2fdfdfceb Use a promise<> for work rather than a dedicated work_base Denis Blank 2019-09-02 00:01:26 +02:00
  • 389002e918 Improve the work wrapper Denis Blank 2019-09-01 23:47:59 +02:00
  • 92368bccb7 Update submodules Denis Blank 2019-08-31 03:31:25 +02:00
  • e09d26f3c6 First work on passing an exception to the executable work * Make work r-value callable only by default Denis Blank 2019-08-31 03:30:03 +02:00
  • 422b6138cd Lift control flow compiler intrinsics into the used scope * Also make UNREACHABLE trap in debug mode Denis Blank 2019-08-27 03:22:34 +02:00
  • 7177ab844b Add a workaround for MSVC 16.2 that causes compilation to fail with a "parameter pack must be expanded in this context" error Rogiel Sulzbach 2019-07-30 16:19:52 -03:00
  • 42af23fa03 Remove ccache Bogdan Vaneev 2019-05-24 11:17:05 +03:00
  • bcf55e88dd Add ccache Bogdan Vaneev 2019-05-24 11:10:56 +03:00
  • 88fbcdbc17 Add ccache, add travis cache Bogdan Vaneev 2019-05-24 11:09:48 +03:00
  • 3eae0a66a5 Remove ccache Bogdan Vaneev 2019-05-24 11:17:05 +03:00
  • 59925f3c24 Add ccache Bogdan Vaneev 2019-05-24 11:10:56 +03:00
  • 9877f95fe2 Add ccache, add travis cache Bogdan Vaneev 2019-05-24 11:09:48 +03:00
  • c9d0e871cd Bump asio to 1.13.0 Bogdan Vaneev 2019-05-23 23:35:49 +03:00
  • 4cc7523380 Add regex to match AppleClang compiler Bogdan Vaneev 2019-05-23 23:14:40 +03:00
  • d26ab2c180 Bump asio to 1.13.0 Bogdan Vaneev 2019-05-23 23:35:49 +03:00
  • 0ec7cb50d2 Add regex to match AppleClang compiler Bogdan Vaneev 2019-05-23 23:14:40 +03:00
  • 25fad02a9d Some ideas stacktrace Denis Blank 2019-04-04 07:04:12 +02:00
  • d842c14268 Re-enable the converting constructor of continuable_base * Probably a forgotten leftover from debugging mainly responsible for more efficient conversions only. Denis Blank 2019-03-19 17:06:58 +01:00
  • e9be3eb8c3 Improved the coroutine support auto detection on MSVC * Based on _RESUMABLE_FUNCTIONS_SUPPORTED inspired from asio. Denis Blank 2019-03-15 17:11:38 +01:00