On 17/10/2020 05:45, David Frank wrote:
Does boost promise/future support coroutines?
For example, the get call only block the running coroutine, instead of
the whole thread?
That depends which ones you mean (on both ends).
The promise/future from Boost.Thread will block the whole thread, naturally.
The promise/future from Boost.Fiber will block the whole fiber (which is
a type of coroutine, but is different from C++20 coroutines).
Futures and coroutines aren't really a great fit together, since the
former only has a blocking interface while the latter is intended to be
used in an entirely non-blocking fashion.
If you're wanting to work with C++20 style coroutines, probably your
best bet is to use a library such as CppCoro. While this doesn't have a
"future" class per se, it does have the equivalent async version as
"task", and it's possible to do sync waits or wrap it in a future if you
do want to block a thread for some reason.
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users