From 9da32d8eb909c5b26e5456a3ed271b7c93655923 Mon Sep 17 00:00:00 2001 From: Sven Over Date: Fri, 15 Apr 2016 20:26:30 -0700 Subject: [PATCH] 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 --- folly/io/async/AsyncUDPServerSocket.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/folly/io/async/AsyncUDPServerSocket.h b/folly/io/async/AsyncUDPServerSocket.h index ec1331cb..899f75d3 100644 --- a/folly/io/async/AsyncUDPServerSocket.h +++ b/folly/io/async/AsyncUDPServerSocket.h @@ -16,7 +16,6 @@ #pragma once -#include #include #include #include @@ -165,18 +164,21 @@ class AsyncUDPServerSocket : private AsyncUDPSocket::ReadCallback auto client = clientAddress; auto callback = listeners_[nextListener_].second; - auto mvp = - folly::MoveWrapper< - std::unique_ptr>(std::move(data)); auto socket = socket_; // Schedule it in the listener's eventbase // XXX: Speed this up - std::function 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_; } -- 2.34.1