From efe81d3adb607e47a3a736af4afdcc81b419ff51 Mon Sep 17 00:00:00 2001 From: Vinnie Falco Date: Wed, 31 Dec 2025 04:46:28 -0800 Subject: [PATCH] Use capy::spawn API for coroutine tasks --- src/server/route_handler.cpp | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/src/server/route_handler.cpp b/src/server/route_handler.cpp index 9e60beed..fc04a360 100644 --- a/src/server/route_handler.cpp +++ b/src/server/route_handler.cpp @@ -60,25 +60,15 @@ spawn( return this->suspend( [ex = this->ex, t = std::move(t)](resumer resume) mutable { - auto h = t.release(); - - h.promise().on_done = [resume, h]() - { - auto& r = h.promise().result; - if(r.index() == 2) + capy::spawn(ex, std::move(t), + [resume](system::result< + route_result, std::exception_ptr> r) { - auto ep = std::get<2>(r); - h.destroy(); - resume(ep); - return; - } - auto rv = std::move(std::get<1>(r)); - auto resume_ = resume; // would be destroyed - h.destroy(); - resume_(rv); - }; - - ex.post([h]() { h.resume(); }); + if(r.has_error()) + resume(r.error()); + else + resume(*r); + }); }); }