1
0
Fork 0

input_common/udp: std::move SocketCallback instances where applicable

std::function is allowed to heap allocate if the size of the captures
associated with each lambda exceed a certain threshold. This prevents
potentially unnecessary reallocations from occurring.
This commit is contained in:
Lioncash 2020-02-03 09:24:03 -05:00 committed by FearlessTobi
parent fcdc191107
commit 575ab92a76
1 changed files with 2 additions and 2 deletions

View File

@ -207,7 +207,7 @@ void TestCommunication(const std::string& host, u16 port, u8 pad_index, u32 clie
Common::Event success_event; Common::Event success_event;
SocketCallback callback{[](Response::Version version) {}, [](Response::PortInfo info) {}, SocketCallback callback{[](Response::Version version) {}, [](Response::PortInfo info) {},
[&](Response::PadData data) { success_event.Set(); }}; [&](Response::PadData data) { success_event.Set(); }};
Socket socket{host, port, pad_index, client_id, callback}; Socket socket{host, port, pad_index, client_id, std::move(callback)};
std::thread worker_thread{SocketLoop, &socket}; std::thread worker_thread{SocketLoop, &socket};
bool result = success_event.WaitFor(std::chrono::seconds(8)); bool result = success_event.WaitFor(std::chrono::seconds(8));
socket.Stop(); socket.Stop();
@ -263,7 +263,7 @@ CalibrationConfigurationJob::CalibrationConfigurationJob(
complete_event.Set(); complete_event.Set();
} }
}}; }};
Socket socket{host, port, pad_index, client_id, callback}; Socket socket{host, port, pad_index, client_id, std::move(callback)};
std::thread worker_thread{SocketLoop, &socket}; std::thread worker_thread{SocketLoop, &socket};
complete_event.Wait(); complete_event.Wait();
socket.Stop(); socket.Stop();