You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to implement a sync interface, suppose we have a response struct:
Post a task to the executor
If it can be finished in the timeout, then retrieve the result, and return response{success, result}.
If it takes longer than the timeout, return response(fail, "timeout"), and set the running continuable to fail status.
I have following code
auto task = asio::post(ioc, use_continuable).then([=]() { // where ioc is a asio::io_context running in a worker thread
this_thread::sleep_for(300ms); // simulate some long task
return 42;
})
auto res = std::move(task).apply(transforms::wait_for(50ms));
if (res.is_value())
return response{success, *res};
else
return response{fail, "timeout"}; // how to invalidate the task above?
The text was updated successfully, but these errors were encountered:
Hi @qiangxinglin ,
you can use when_any and combine it with a timer.
Continuable does not support real cancellation of continuations and you would have to implement this for your specific task.
@Naios Thank you for the bravo project!
I want to implement a sync interface, suppose we have a
response
struct:response{success, result}
.response(fail, "timeout")
, and set the running continuable tofail
status.I have following code
The text was updated successfully, but these errors were encountered: