monero/contrib/epee/include/net
moneromooo-monero 1e2f2d7da0
epee: fix hang on exit
When the boost ioservice is stopped, pending work notifications
will not happen. This includes deadline timers, which would
otherwise time out the now cancelled I/O operations. When this
happens just after starting a new connect operation, this can
leave that operations in a state where it won't receive either
the completion notification nor a timeout, causing a hang.

This is fixed by keeping a list of connections corresponding
to the connect operations, and cancelling them before stopping
the boost ioservice.

Note that the list of these connections can grow unbounded, as
they're never cleaned up. Cleaning them up would involve
working out which connections do not have any pending work,
and it's not quite clear yet how to go about this.
2015-12-22 12:39:02 +00:00
..
abstract_tcp_server2.h epee: fix hang on exit 2015-12-22 12:39:02 +00:00
abstract_tcp_server2.inl epee: fix hang on exit 2015-12-22 12:39:02 +00:00
abstract_tcp_server_cp.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
abstract_tcp_server_cp.inl moved non-critical warnings and errors to log level 1 2014-09-09 11:32:00 +02:00
abstract_tcp_server.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
http_base.h year updated in license 2015-01-02 18:52:46 +02:00
http_client_abstract_invoke.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
http_client_base.h year updated in license 2015-01-02 18:52:46 +02:00
http_client_via_api_helper.h year updated in license 2015-01-02 18:52:46 +02:00
http_client.h year updated in license 2015-01-02 18:52:46 +02:00
http_protocol_handler.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
http_protocol_handler.inl year updated in license 2015-01-02 18:52:46 +02:00
http_server_cp2.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
http_server_cp.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
http_server_handlers_map2.h core_rpc_server: add a --restricted-rpc option 2015-11-27 18:27:24 +00:00
http_server_impl_base.h [fix] Network 1.8: unlimited the RPC connections 2015-04-08 19:54:07 +02:00
http_server_thread_per_connect.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
jsonrpc_protocol_handler.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
jsonrpc_server_handlers_map.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
jsonrpc_server_impl_base.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
jsonrpc_structs.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
levin_base.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
levin_client_async.h year updated in license 2015-01-02 18:52:46 +02:00
levin_client_async.inl moved all stuff to github 2014-03-03 22:07:58 +00:00
levin_client.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
levin_client.inl moved non-critical warnings and errors to log level 1 2014-09-09 11:32:00 +02:00
levin_helper.h year updated in license 2015-01-02 18:52:46 +02:00
levin_protocol_handler_async.h [fix] mac os x includes std::random... 2015-04-01 20:25:53 +02:00
levin_protocol_handler.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
levin_server_cp2.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
levin_server_cp.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
local_ip.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
multiprotocols_server.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
munin_connection_handler.h year updated in license 2015-01-02 18:52:46 +02:00
munin_node_server.h year updated in license 2015-01-02 18:52:46 +02:00
net_helper.h move modified epee code to new classes, revert license 2014-07-25 18:29:08 +02:00
net_parse_helpers.h moved non-critical warnings and errors to log level 1 2014-09-09 11:32:00 +02:00
net_utils_base.h 2014 network limit 1.1 +utils +toc -doc -drmonero 2015-02-20 22:13:00 +01:00
protocol_switcher.h year updated in license 2015-01-02 18:52:46 +02:00
rpc_method_name.h year updated in license 2015-01-02 18:52:46 +02:00
smtp_helper.h year updated in license 2015-01-02 18:52:46 +02:00
smtp.h year updated in license 2015-01-02 18:52:46 +02:00
smtp.inl year updated in license 2015-01-02 18:52:46 +02:00