Open microcai opened 7 months ago
but, that kind of refactoring only works with asio.
This is not true. At least not "only".
we have some old lib that accepts callbacks. now I want to call that old lib function and "co_await" for the callback to be invoked.
I didn't understand where the blocker it. Could you explain your question in detail?
You need to implement awaiter for your asynchronous operation, refer to this demo and coroutine reference
And we can use Future/Promise, call promise setValue in callback, and co_await future in Lazy
refer to https://github.com/alibaba/async_simple/blob/main/async_simple/coro/test/FutureAwaiterTest.cpp
the referenced document says to use
async_xxx(param, callbackhandler)
to
co_await async_xxx(param);
but, that kind of refactoring only works with asio.
we have some old lib that accepts callbacks. now I want to call that old lib function and "co_await" for the callback to be invoked.
hint: I warpped the Executor for the old lib, so the old lib and async_simple runs in the same Executor. I need a way to convert "lazy<>" to some old style callbacks. and let that callback to resume the calling lazy<>