We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 622d39b commit 143fd72Copy full SHA for 143fd72
1 file changed
src/server/route_handler.cpp
@@ -56,10 +56,30 @@ set_body(std::string s)
56
auto
57
route_params::
58
spawn(
59
- capy::task<route_result>) ->
+ capy::task<route_result> t) ->
60
route_result
61
{
62
- detail::throw_invalid_argument();
+ return this->suspend(
63
+ [ex = this->ex, t = std::move(t)](resumer resume) mutable
64
+ {
65
+ auto h = t.release();
66
+
67
+ h.promise().on_done = [resume, h]()
68
69
+ auto& r = h.promise().result;
70
+ if(r.index() == 2)
71
72
+ auto ep = std::get<2>(r);
73
+ h.destroy();
74
+ std::rethrow_exception(ep);
75
+ }
76
+ auto rv = std::move(std::get<1>(r));
77
78
+ resume(rv);
79
+ };
80
81
+ ex.post([h]() { h.resume(); });
82
+ });
83
}
84
85
#endif
0 commit comments