Commit 9da32d8e authored by Sven Over's avatar Sven Over Committed by Facebook Github Bot 8

remove MoveWrapper from io/async/AsyncUDPServerSocket.h

Summary:This is the last place in folly that uses MoveWrapper (other than
the MoveWrapper implementation itself and its tests, of course).

Instead of using a MoveWrapper, the object in question is moved
into the lambda using C++14 syntax, and the lambda is moved in a
call to EventBase::runInEventBaseThread which is possible now
that the EventBase methods accept non-copyable callbacks.

Reviewed By: yfeldblum

Differential Revision: D3169316

fb-gh-sync-id: 2dcb1a523ac417f4619c607898e58b572648e3da
fbshipit-source-id: 2dcb1a523ac417f4619c607898e58b572648e3da
parent 71f01fb8
......@@ -16,7 +16,6 @@
#pragma once
#include <folly/MoveWrapper.h>
#include <folly/io/IOBufQueue.h>
#include <folly/Memory.h>
#include <folly/io/async/AsyncUDPSocket.h>
......@@ -165,18 +164,21 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback
auto client = clientAddress;
auto callback = listeners_[nextListener_].second;
auto mvp =
folly::MoveWrapper<
std::unique_ptr<folly::IOBuf>>(std::move(data));
auto socket = socket_;
// Schedule it in the listener's eventbase
// XXX: Speed this up
std::function<void()> f = [socket, client, callback, mvp, truncated] () mutable {
callback->onDataAvailable(socket, client, std::move(*mvp), truncated);
auto f = [
socket,
client,
callback,
data = std::move(data),
truncated
]() mutable {
callback->onDataAvailable(socket, client, std::move(data), truncated);
};
listeners_[nextListener_].first->runInEventBaseThread(f);
listeners_[nextListener_].first->runInEventBaseThread(std::move(f));
++nextListener_;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment