@@ -214,7 +214,7 @@ class win_iocp_socket_service_base
214214 template <typename ConstBufferSequence, typename Handler>
215215 void async_send (base_implementation_type& impl,
216216 const ConstBufferSequence& buffers,
217- socket_base::message_flags flags, Handler handler)
217+ socket_base::message_flags flags, Handler& handler)
218218 {
219219 // Allocate and construct an operation to wrap the handler.
220220 typedef win_iocp_socket_send_op<ConstBufferSequence, Handler> op;
@@ -237,7 +237,7 @@ class win_iocp_socket_service_base
237237 // Start an asynchronous wait until data can be sent without blocking.
238238 template <typename Handler>
239239 void async_send (base_implementation_type& impl, const null_buffers&,
240- socket_base::message_flags, Handler handler)
240+ socket_base::message_flags, Handler& handler)
241241 {
242242 // Allocate and construct an operation to wrap the handler.
243243 typedef win_iocp_null_buffers_op<Handler> op;
@@ -281,7 +281,7 @@ class win_iocp_socket_service_base
281281 template <typename MutableBufferSequence, typename Handler>
282282 void async_receive (base_implementation_type& impl,
283283 const MutableBufferSequence& buffers,
284- socket_base::message_flags flags, Handler handler)
284+ socket_base::message_flags flags, Handler& handler)
285285 {
286286 // Allocate and construct an operation to wrap the handler.
287287 typedef win_iocp_socket_recv_op<MutableBufferSequence, Handler> op;
@@ -304,7 +304,7 @@ class win_iocp_socket_service_base
304304 // Wait until data can be received without blocking.
305305 template <typename Handler>
306306 void async_receive (base_implementation_type& impl, const null_buffers&,
307- socket_base::message_flags flags, Handler handler)
307+ socket_base::message_flags flags, Handler& handler)
308308 {
309309 // Allocate and construct an operation to wrap the handler.
310310 typedef win_iocp_null_buffers_op<Handler> op;
@@ -355,7 +355,7 @@ class win_iocp_socket_service_base
355355 template <typename MutableBufferSequence, typename Handler>
356356 void async_receive_with_flags (base_implementation_type& impl,
357357 const MutableBufferSequence& buffers, socket_base::message_flags in_flags,
358- socket_base::message_flags& out_flags, Handler handler)
358+ socket_base::message_flags& out_flags, Handler& handler)
359359 {
360360 // Allocate and construct an operation to wrap the handler.
361361 typedef win_iocp_socket_recvmsg_op<MutableBufferSequence, Handler> op;
@@ -378,7 +378,7 @@ class win_iocp_socket_service_base
378378 template <typename Handler>
379379 void async_receive_with_flags (base_implementation_type& impl,
380380 const null_buffers&, socket_base::message_flags in_flags,
381- socket_base::message_flags& out_flags, Handler handler)
381+ socket_base::message_flags& out_flags, Handler& handler)
382382 {
383383 // Allocate and construct an operation to wrap the handler.
384384 typedef win_iocp_null_buffers_op<Handler> op;
0 commit comments