On 26/07/2018 00:15, hawk x wrote:
> application with single thread.
> I did not find a good implement of this kind of "Promise" in c++
std::future::then was proposed for C++17, but didn't make it in. Boost
does support it, however, as does an STL that implements the Concurrency
TS (as std::experimental::future::then).
Currently coroutines are a pure library feature (supported by
Boost.Context and Boost.Coroutine), but they are expected to be
supported directly by C++20 compilers, and by C++17 compilers that
implement the Coroutine TS (VS 2017 already supports co_await, for example).
boost::coroutine and std::future are all excellent solutions for
But if there's many concurrent tasks, event-loop based multi-task in SINGLE
thread will have the best performance.
while std::future is designed for mulitthread, and std::future::then is not
suitable for event-loop based multi-task in SINGLE thread,
that's why I wrote "promise-cpp".
On 27/07/2018 14:13, hawk x wrote:
> boost::coroutine and std::future are all excellent solutions for
> concurrency programming.
> But if there's many concurrent tasks, event-loop based multi-task in SINGLE
> thread will have the best performance.
coroutines can be used to manage concurrent tasks on a single thread.
Boost.Asio is one way to manage those tasks with an event loop (simply
have a single thread running the io_service/io_context); additional work
can be posted both from "inside" and outside.