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

Reply via email to