Hi,

in Boost 1.58 I fixed some issues as the result of the async and future<T>:then() was not a blocking future as the documentation described. However the implementation is horrible and I suspect that it is subject to deadlocks. BTW, I added already some fixes on the develop branch.

Sometime ago I started in a branch an implementation that don't use blocking futures [1].
Well the implementation is also  horrible after making futures non-blocking, but less ;-) The problem is that now I have some issues with the executors :(

Anyway, Gor has told me that with the blocking implementation he is unable to define await_suspend (using resumable functions)

>It is just if .then returns a blocking future, I cannot subscribe a callback to .then in await_suspend.
>await_suspend(f, cb) {
>   f.then(cb);
>} &
will block here preventing coroutine from suspending  

I don't know yet if he will reach to configure boost::future<T> on the non-blocking branch.

My question is if the Boost community will accept (or even wants) a breaking change on a near release (when I would reach to fix the executors issues) including non-blocking futures instead of the current blocking futures.

Best,
Vicente

[1] https://github.com/boostorg/thread/tree/feature/non_blocking_futures