0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-25 05:18:23 +02:00

ircd::net::dns::resolver: Disable interrupt on shutdown; obtain mutex.

This commit is contained in:
Jason Volk 2019-08-25 16:58:52 -07:00
parent e4cdc34bba
commit 299e4a2256

View file

@ -132,22 +132,33 @@ ircd::net::dns::resolver::resolver(answers_callback callback)
ircd::net::dns::resolver::~resolver()
noexcept
{
log::debug
{
log, "Shutting down with %zu unfinished DNS resolutions.",
tags.size()
};
const ctx::uninterruptible::nothrow ui;
if(ns.is_open())
ns.close();
done.wait([this]
{
const bool ret(tags.empty());
if(!ret)
if(!tags.empty())
log::warning
{
log, "Waiting for %zu unfinished DNS resolutions",
tags.size()
};
return ret;
return tags.empty();
});
const std::lock_guard lock
{
mutex
};
timeout_context.terminate();
sendq_context.terminate();
recv_context.terminate();