@@ -17,6 +17,11 @@ class echo_session
17
17
{
18
18
}
19
19
20
+ echo_session (const echo_session<Socket>& other) = delete ;
21
+ echo_session<Socket>& operator =(const echo_session<Socket>& other) = delete ;
22
+ echo_session (echo_session<Socket>&& other) = default ;
23
+ echo_session<Socket>& operator =(echo_session<Socket>&& other) = default ;
24
+
20
25
virtual ~echo_session () = default ;
21
26
22
27
protected:
@@ -345,12 +350,12 @@ class tcp_base_server: public echo_server<Session>
345
350
auto future = promise.get_future ();
346
351
347
352
session_threads_.emplace_back (
348
- [= ](std::promise<Session>&& promise) {
349
- std::unique_lock<std::mutex> lk (acceptor_mutex_);
353
+ [this ](std::promise<Session>&& promise) {
354
+ std::unique_lock<std::mutex> lk (this -> acceptor_mutex_ );
350
355
351
356
auto sock = std::make_shared<boost::asio::ip::tcp::socket>(*this ->io_service_ );
352
357
this ->acceptor_ .accept (*sock);
353
- promise.set_value_at_thread_exit (Session (this ->io_service_ , std::move (sock)));
358
+ promise.set_value (Session (this ->io_service_ , std::move (sock)));
354
359
},
355
360
std::move (promise));
356
361
@@ -422,13 +427,13 @@ class ssl_server: public echo_server<ssl_session>
422
427
auto future = promise.get_future ();
423
428
424
429
session_threads_.emplace_back (
425
- [= ](std::promise<ssl_session>&& promise) {
426
- std::unique_lock<std::mutex> lk (acceptor_mutex_);
430
+ [this ](std::promise<ssl_session>&& promise) {
431
+ std::unique_lock<std::mutex> lk (this -> acceptor_mutex_ );
427
432
428
433
auto session = ssl_session (this ->io_service_ , context_);
429
434
this ->acceptor_ .accept (session.get_socket ());
430
435
session.get_ssl_socket ().handshake (boost::asio::ssl::stream_base::server);
431
- promise.set_value_at_thread_exit (std::move (session));
436
+ promise.set_value (std::move (session));
432
437
},
433
438
std::move (promise));
434
439
@@ -472,8 +477,8 @@ class udp_server: public echo_server<udp_session>
472
477
auto future = promise.get_future ();
473
478
474
479
session_threads_.emplace_back (
475
- [= ](std::promise<udp_session>&& promise) {
476
- promise.set_value_at_thread_exit (udp_session (this ->io_service_ , this ->socket_ ));
480
+ [this ](std::promise<udp_session>&& promise) {
481
+ promise.set_value (udp_session (this ->io_service_ , this ->socket_ ));
477
482
},
478
483
std::move (promise));
479
484
0 commit comments