MXS-2002 Replace task with std::function
This commit is contained in:
parent
4193c4d3db
commit
43b53fda7a
@ -1249,39 +1249,17 @@ static HttpResponse handle_request(const HttpRequest& request)
|
||||
return rval;
|
||||
}
|
||||
|
||||
class ResourceTask: public mxs::Worker::Task
|
||||
{
|
||||
public:
|
||||
ResourceTask(const HttpRequest& request):
|
||||
m_request(request)
|
||||
{
|
||||
}
|
||||
|
||||
void execute(mxs::Worker& worker)
|
||||
{
|
||||
m_response = handle_request(m_request);
|
||||
}
|
||||
|
||||
HttpResponse result()
|
||||
{
|
||||
return m_response;
|
||||
}
|
||||
|
||||
private:
|
||||
const HttpRequest& m_request;
|
||||
HttpResponse m_response;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
HttpResponse resource_handle_request(const HttpRequest& request)
|
||||
{
|
||||
mxs::Worker* worker = mxs::RoutingWorker::get(mxs::RoutingWorker::MAIN);
|
||||
mxs::Semaphore sem;
|
||||
ResourceTask task(request);
|
||||
|
||||
worker->execute(&task, &sem, mxs::Worker::EXECUTE_AUTO);
|
||||
sem.wait();
|
||||
HttpResponse response;
|
||||
worker->call([&request, &response]()
|
||||
{
|
||||
response = handle_request(request);
|
||||
}, mxs::Worker::EXECUTE_AUTO);
|
||||
|
||||
return task.result();
|
||||
return response;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user