MXS-2002 Replace task with std::function
This commit is contained in:
@ -1249,39 +1249,17 @@ static HttpResponse handle_request(const HttpRequest& request)
|
|||||||
return rval;
|
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)
|
HttpResponse resource_handle_request(const HttpRequest& request)
|
||||||
{
|
{
|
||||||
mxs::Worker* worker = mxs::RoutingWorker::get(mxs::RoutingWorker::MAIN);
|
mxs::Worker* worker = mxs::RoutingWorker::get(mxs::RoutingWorker::MAIN);
|
||||||
mxs::Semaphore sem;
|
|
||||||
ResourceTask task(request);
|
|
||||||
|
|
||||||
worker->execute(&task, &sem, mxs::Worker::EXECUTE_AUTO);
|
HttpResponse response;
|
||||||
sem.wait();
|
worker->call([&request, &response]()
|
||||||
|
{
|
||||||
|
response = handle_request(request);
|
||||||
|
}, mxs::Worker::EXECUTE_AUTO);
|
||||||
|
|
||||||
return task.result();
|
return response;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user