Boost logo

Boost Users :

Subject: [Boost-users] [thread] Do we can a non backward compatible version with non-blocking futures?
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2015-05-18 19:58:00


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



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net