518 Commits

Author SHA1 Message Date
Denis Blank
96c9f7af99 More 2018-12-25 11:12:11 +01:00
Denis Blank
1cbfcbea6d Use new types instead of aliases for type erasure
* Makes compiler output much more readable
2018-12-25 09:57:14 +01:00
Denis Blank
d4cb7dd7b3 Only disable specific top level project settings
* When being not being inside in a top level project
2018-12-25 09:35:20 +01:00
Denis Blank
f469b7058a Implement make_cancelling_continuable()
* Can be used to cancel the chain when being inside a handler
2018-12-25 09:30:23 +01:00
Denis Blank
4127c02c3f Add an overload to make_result which accepts a exception_arg_t and exception_t
* Can be used to forward the result correctly from next handlers
2018-12-25 09:05:51 +01:00
Denis Blank
d052a02595 Remove a bad GCC diagnostic pop when using result<...> and GCC 2018-12-25 08:42:42 +01:00
Denis Blank
7dbc95c4b3 Implement zero cost ready continuables for await expressions 2018-12-16 04:25:56 +01:00
Denis Blank
fcf9a76029 Set the minimum required CMake version to 3.11
* Make travis-ci install a recent CMake version
* Update function2
2018-12-12 17:46:16 +01:00
Denis Blank
49e3a659ad Rework the find_package() support
* It is now possible to include the repository correctly
  through add_subdirectory
* find_package(continuable) was improved to work when
  only the path of the repository was added to the module path.
2018-12-11 04:30:58 +01:00
Denis Blank
65916e29a8 Update function2 to Naios/function2@2b3bc42 2018-12-11 04:29:24 +01:00
Denis Blank
121265df71 Cleanup in result<> 2018-12-11 01:21:26 +01:00
Denis Blank
4c41995316 Document recover, rethrow and cancel
* Closes #9
2018-12-11 01:21:09 +01:00
Denis Blank
dd09c3d684 Bump the version to 4.0.0 2018-12-10 18:08:29 +01:00
Denis Blank
ff881091fc Update function2 to Naios/function2@1dd435d 2018-12-10 06:27:15 +01:00
Denis Blank
30d49141a8 Resolve ready continuables directly in sequential connections 2018-12-10 06:22:53 +01:00
Denis Blank
c7ef5c6f64 Adhust the SFO buffer size so it can contain a pointer at zero cost 2018-12-10 06:07:43 +01:00
Denis Blank
b2726982ac Fix the build when coroutines are enabled 2018-12-10 06:03:46 +01:00
Denis Blank
57bb43138b Fix a recursive template instantiation issue on clang and gcc 2018-12-10 05:08:39 +01:00
Denis Blank
1320c8eb63 Add a unit test which tests for ready continuables explicitly 2018-12-09 17:01:56 +01:00
Denis Blank
1bdee5b371 Remove an unused using 2018-12-09 16:49:03 +01:00
Denis Blank
bdada99096 Fix the immediate return type of chained continuables
* Statically resolve ready continuables
2018-12-09 16:48:08 +01:00
Denis Blank
7273891a4c Specialize the continuation chainer in case ready continuables are chained 2018-12-09 04:53:28 +01:00
Denis Blank
9ceee76647 Fix an issue with the is_ready overload 2018-12-08 17:52:22 +01:00
Denis Blank
4b1f6281fc Initial work on wrapping all continuations into the triple path schema 2018-12-08 05:53:44 +01:00
Denis Blank
cb6ce5b43b get_arg_t -> query_arg_t 2018-12-08 04:50:38 +01:00
Denis Blank
24158583b7 Provide the get_arg_t and is_ready_arg_t also from continuables created through make_* 2018-12-08 04:49:03 +01:00
Denis Blank
6947091a27 Preserve the ownership across chainings
* Fixes the unit tests
2018-12-08 04:31:32 +01:00
Denis Blank
bcafd1b333 Only consume the data when chaining continuations 2018-12-08 04:19:53 +01:00
Denis Blank
d416698758 Make the ready query stuff part of the private API 2018-12-08 04:11:40 +01:00
Denis Blank
b5f353222c Make it possible to add optional methods to continuable_base depending on the annotation 2018-12-08 03:28:33 +01:00
Denis Blank
f5dd02ef8b Some documentation fixes 2018-12-08 02:53:33 +01:00
Denis Blank
969445c8a0 Fix the build 2018-12-08 02:40:10 +01:00
Denis Blank
577b71b8ab Remove the template args from the void make_ready_continuable 2018-12-08 01:28:27 +01:00
Denis Blank
b293d9a342 Adapt the small functor capacity to hold a ready continuable at zero cost 2018-12-08 01:26:14 +01:00
Denis Blank
da8ec15c6f Some minor improvements 2018-12-07 04:46:18 +01:00
Denis Blank
62ca39e59c Some renaming 2018-12-07 04:40:03 +01:00
Denis Blank
f17cc4073c Add the is_ready proto 2018-11-30 03:05:18 +01:00
Denis Blank
7a5bde328c Unify the exception and result invoker 2018-11-30 03:04:55 +01:00
Denis Blank
7352cbf8a9 Make it possible to continue with a continuable from failure handlers 2018-11-30 02:10:05 +01:00
Denis Blank
4d58e3bded Attempt to fix the GCC build 2018-11-28 17:55:01 +01:00
Denis Blank
1edd1e633d Fix the unit tests 2018-11-28 17:00:35 +01:00
Denis Blank
70c716bb28 Make the failure handler partial applyable
* Make result C++17 destructible
* Add unit tests
2018-11-28 01:29:36 +01:00
Denis Blank
bb7112eec2 Fix the build 2018-11-27 16:38:24 +01:00
Denis Blank
f1f9d61952 Attempt to remove the plain handler 2018-11-27 02:39:41 +01:00
Denis Blank
b77e926c41 Fix the unit tests 2018-11-26 04:37:48 +01:00
Denis Blank
812420cf06 Unify the exception and result handler
* Make the failure handler partial applyable
2018-11-26 04:15:40 +01:00
Denis Blank
a9375c7f22 Implement the exception invokers which fully implements recover, rethrow and cancel now 2018-11-26 04:12:17 +01:00
Denis Blank
ca1c0bf1da Split the logic for exception forwarding 2018-11-26 03:27:35 +01:00
Denis Blank
82dd47b463 Cleanup the unit tests 2018-11-26 03:21:01 +01:00
Denis Blank
c5663bf1ad Add the unit tests for the failure handlers recovering and rethrowing 2018-11-26 03:02:49 +01:00