aboutsummaryrefslogtreecommitdiff
path: root/external/unbound
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-12-22 12:31:22 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-12-22 12:39:02 +0000
commit1e2f2d7da0ee22e35670856ad964671848e186b4 (patch)
treebd220d60d507b28e54f217f2eb950520f70220b9 /external/unbound
parentnet_node: fix a hang on exit (diff)
downloadmonero-1e2f2d7da0ee22e35670856ad964671848e186b4.tar.xz
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.
Diffstat (limited to 'external/unbound')
0 files changed, 0 insertions, 0 deletions