mirror of
https://github.com/matrix-construct/construct
synced 2024-11-25 00:02:34 +01:00
ircd: Attribute static dtors worthy of running to cleanup memcheck reports.
This commit is contained in:
parent
202521b9ef
commit
9d0d45294c
14 changed files with 44 additions and 4 deletions
|
@ -95,6 +95,7 @@ ircd::client::pool_opts
|
||||||
/// The pool of request contexts. When a client makes a request it does so by acquiring
|
/// The pool of request contexts. When a client makes a request it does so by acquiring
|
||||||
/// a stack from this pool. The request handling and response logic can then be written
|
/// a stack from this pool. The request handling and response logic can then be written
|
||||||
/// in a synchronous manner as if each connection had its own thread.
|
/// in a synchronous manner as if each connection had its own thread.
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::client::pool)
|
decltype(ircd::client::pool)
|
||||||
ircd::client::pool
|
ircd::client::pool
|
||||||
{
|
{
|
||||||
|
|
|
@ -50,6 +50,7 @@ ircd::ctx::ctx::id_ctr
|
||||||
/// execution slice in the ircd::ios handler list. This posits the entire
|
/// execution slice in the ircd::ios handler list. This posits the entire
|
||||||
/// ircd::ctx system as one ircd::ios handler type among all the others.
|
/// ircd::ctx system as one ircd::ios handler type among all the others.
|
||||||
/// At this time it is unclear how to hook a context's execution slice in the ircd::ios system.
|
/// At this time it is unclear how to hook a context's execution slice in the ircd::ios system.
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::ctx::ctx::ios_desc)
|
decltype(ircd::ctx::ctx::ios_desc)
|
||||||
ircd::ctx::ctx::ios_desc
|
ircd::ctx::ctx::ios_desc
|
||||||
{
|
{
|
||||||
|
@ -543,6 +544,7 @@ namespace ircd::ctx
|
||||||
extern ios::descriptor signal_desc;
|
extern ios::descriptor signal_desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::ctx::signal_desc)
|
decltype(ircd::ctx::signal_desc)
|
||||||
ircd::ctx::signal_desc
|
ircd::ctx::signal_desc
|
||||||
{
|
{
|
||||||
|
@ -740,6 +742,7 @@ noexcept
|
||||||
// ctx/this_ctx.h
|
// ctx/this_ctx.h
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::ctx::this_ctx::courtesy_yield_desc)
|
decltype(ircd::ctx::this_ctx::courtesy_yield_desc)
|
||||||
ircd::ctx::this_ctx::courtesy_yield_desc
|
ircd::ctx::this_ctx::courtesy_yield_desc
|
||||||
{
|
{
|
||||||
|
@ -1152,6 +1155,7 @@ namespace ircd::ctx
|
||||||
extern ios::descriptor spawn_desc[3];
|
extern ios::descriptor spawn_desc[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::ctx::spawn_desc)
|
decltype(ircd::ctx::spawn_desc)
|
||||||
ircd::ctx::spawn_desc
|
ircd::ctx::spawn_desc
|
||||||
{
|
{
|
||||||
|
|
|
@ -16,9 +16,9 @@ namespace ircd::ctx::ole
|
||||||
|
|
||||||
static std::mutex mutex;
|
static std::mutex mutex;
|
||||||
static std::condition_variable cond;
|
static std::condition_variable cond;
|
||||||
static std::deque<offload::function> queue;
|
extern std::deque<offload::function> queue;
|
||||||
static ssize_t working;
|
static ssize_t working;
|
||||||
static std::vector<std::thread> threads;
|
extern std::vector<std::thread> threads;
|
||||||
static bool termination alignas(64);
|
static bool termination alignas(64);
|
||||||
|
|
||||||
static offload::function pop();
|
static offload::function pop();
|
||||||
|
@ -34,6 +34,14 @@ ircd::ctx::ole::thread_max
|
||||||
{ "default", int64_t(1) },
|
{ "default", int64_t(1) },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[gnu::visibility("internal"), clang::always_destroy]]
|
||||||
|
decltype(ircd::ctx::ole::queue)
|
||||||
|
ircd::ctx::ole::queue;
|
||||||
|
|
||||||
|
[[gnu::visibility("internal"), clang::always_destroy]]
|
||||||
|
decltype(ircd::ctx::ole::threads)
|
||||||
|
ircd::ctx::ole::threads;
|
||||||
|
|
||||||
ircd::ctx::ole::init::init()
|
ircd::ctx::ole::init::init()
|
||||||
{
|
{
|
||||||
assert(threads.empty());
|
assert(threads.empty());
|
||||||
|
|
|
@ -95,6 +95,7 @@ ircd::db::request_pool_opts
|
||||||
/// The number of workers in this pool should upper bound at the
|
/// The number of workers in this pool should upper bound at the
|
||||||
/// number of concurrent AIO requests which are effective on this
|
/// number of concurrent AIO requests which are effective on this
|
||||||
/// system. This is a static pool shared by all databases.
|
/// system. This is a static pool shared by all databases.
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::db::request)
|
decltype(ircd::db::request)
|
||||||
ircd::db::request
|
ircd::db::request
|
||||||
{
|
{
|
||||||
|
@ -281,6 +282,7 @@ catch(const std::exception &e)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::db::compressions)
|
decltype(ircd::db::compressions)
|
||||||
ircd::db::compressions;
|
ircd::db::compressions;
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,7 @@ ircd::fmt::specifier
|
||||||
static const specifier &at(const string_view &name);
|
static const specifier &at(const string_view &name);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::fmt::specifier::registry)
|
decltype(ircd::fmt::specifier::registry)
|
||||||
ircd::fmt::specifier::registry;
|
ircd::fmt::specifier::registry;
|
||||||
|
|
||||||
|
|
|
@ -674,12 +674,14 @@ ircd::fs::aio::system::eventfd_flags
|
||||||
EFD_CLOEXEC | EFD_NONBLOCK
|
EFD_CLOEXEC | EFD_NONBLOCK
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::fs::aio::system::chase_descriptor)
|
decltype(ircd::fs::aio::system::chase_descriptor)
|
||||||
ircd::fs::aio::system::chase_descriptor
|
ircd::fs::aio::system::chase_descriptor
|
||||||
{
|
{
|
||||||
"ircd.fs.aio.chase"
|
"ircd.fs.aio.chase"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::fs::aio::system::handle_descriptor)
|
decltype(ircd::fs::aio::system::handle_descriptor)
|
||||||
ircd::fs::aio::system::handle_descriptor
|
ircd::fs::aio::system::handle_descriptor
|
||||||
{
|
{
|
||||||
|
|
|
@ -512,6 +512,7 @@ catch(...)
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::fs::iou::system::handle_descriptor)
|
decltype(ircd::fs::iou::system::handle_descriptor)
|
||||||
ircd::fs::iou::system::handle_descriptor
|
ircd::fs::iou::system::handle_descriptor
|
||||||
{
|
{
|
||||||
|
|
|
@ -63,6 +63,7 @@ ircd::instance_list<ircd::log::log>::list
|
||||||
allocator
|
allocator
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::log::file)
|
decltype(ircd::log::file)
|
||||||
ircd::log::file;
|
ircd::log::file;
|
||||||
|
|
||||||
|
@ -845,6 +846,7 @@ ircd::log::is_conf_mask_file(const string_view &name)
|
||||||
return empty(string_view(mask_file));
|
return empty(string_view(mask_file));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::log::unmask_file)
|
decltype(ircd::log::unmask_file)
|
||||||
ircd::log::unmask_file
|
ircd::log::unmask_file
|
||||||
{
|
{
|
||||||
|
@ -858,6 +860,7 @@ ircd::log::unmask_file
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::log::unmask_console)
|
decltype(ircd::log::unmask_console)
|
||||||
ircd::log::unmask_console
|
ircd::log::unmask_console
|
||||||
{
|
{
|
||||||
|
@ -871,6 +874,7 @@ ircd::log::unmask_console
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::log::mask_file)
|
decltype(ircd::log::mask_file)
|
||||||
ircd::log::mask_file
|
ircd::log::mask_file
|
||||||
{
|
{
|
||||||
|
@ -884,6 +888,7 @@ ircd::log::mask_file
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::log::mask_console)
|
decltype(ircd::log::mask_console)
|
||||||
ircd::log::mask_console
|
ircd::log::mask_console
|
||||||
{
|
{
|
||||||
|
|
|
@ -1172,9 +1172,9 @@ ircd::mods::suffix
|
||||||
boost::dll::shared_library::suffix().string()
|
boost::dll::shared_library::suffix().string()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::mods::paths)
|
decltype(ircd::mods::paths)
|
||||||
ircd::mods::paths
|
ircd::mods::paths;
|
||||||
{};
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// util
|
// util
|
||||||
|
|
|
@ -1194,6 +1194,7 @@ ircd::net::scope_timeout::release()
|
||||||
// net/socket.h
|
// net/socket.h
|
||||||
//
|
//
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::ssl_curve_list)
|
decltype(ircd::net::ssl_curve_list)
|
||||||
ircd::net::ssl_curve_list
|
ircd::net::ssl_curve_list
|
||||||
{
|
{
|
||||||
|
@ -1201,6 +1202,7 @@ ircd::net::ssl_curve_list
|
||||||
{ "default", string_view{} },
|
{ "default", string_view{} },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::ssl_cipher_list)
|
decltype(ircd::net::ssl_cipher_list)
|
||||||
ircd::net::ssl_cipher_list
|
ircd::net::ssl_cipher_list
|
||||||
{
|
{
|
||||||
|
@ -1208,6 +1210,7 @@ ircd::net::ssl_cipher_list
|
||||||
{ "default", string_view{} },
|
{ "default", string_view{} },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::ssl_cipher_blacklist)
|
decltype(ircd::net::ssl_cipher_blacklist)
|
||||||
ircd::net::ssl_cipher_blacklist
|
ircd::net::ssl_cipher_blacklist
|
||||||
{
|
{
|
||||||
|
@ -1215,6 +1218,7 @@ ircd::net::ssl_cipher_blacklist
|
||||||
{ "default", string_view{} },
|
{ "default", string_view{} },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
[[gnu::visibility("hidden")]]
|
[[gnu::visibility("hidden")]]
|
||||||
boost::asio::ssl::context
|
boost::asio::ssl::context
|
||||||
ircd::net::sslv23_client
|
ircd::net::sslv23_client
|
||||||
|
@ -1228,30 +1232,35 @@ ircd::net::socket::count;
|
||||||
decltype(ircd::net::socket::instances)
|
decltype(ircd::net::socket::instances)
|
||||||
ircd::net::socket::instances;
|
ircd::net::socket::instances;
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::socket::desc_connect)
|
decltype(ircd::net::socket::desc_connect)
|
||||||
ircd::net::socket::desc_connect
|
ircd::net::socket::desc_connect
|
||||||
{
|
{
|
||||||
"ircd.net.socket.connect"
|
"ircd.net.socket.connect"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::socket::desc_handshake)
|
decltype(ircd::net::socket::desc_handshake)
|
||||||
ircd::net::socket::desc_handshake
|
ircd::net::socket::desc_handshake
|
||||||
{
|
{
|
||||||
"ircd.net.socket.handshake"
|
"ircd.net.socket.handshake"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::socket::desc_disconnect)
|
decltype(ircd::net::socket::desc_disconnect)
|
||||||
ircd::net::socket::desc_disconnect
|
ircd::net::socket::desc_disconnect
|
||||||
{
|
{
|
||||||
"ircd.net.socket.disconnect"
|
"ircd.net.socket.disconnect"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::socket::desc_timeout)
|
decltype(ircd::net::socket::desc_timeout)
|
||||||
ircd::net::socket::desc_timeout
|
ircd::net::socket::desc_timeout
|
||||||
{
|
{
|
||||||
"ircd.net.socket.timeout"
|
"ircd.net.socket.timeout"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::socket::desc_wait)
|
decltype(ircd::net::socket::desc_wait)
|
||||||
ircd::net::socket::desc_wait
|
ircd::net::socket::desc_wait
|
||||||
{
|
{
|
||||||
|
|
|
@ -226,12 +226,14 @@ ircd::net::acceptor::log
|
||||||
"net.listen"
|
"net.listen"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::acceptor::accept_desc)
|
decltype(ircd::net::acceptor::accept_desc)
|
||||||
ircd::net::acceptor::accept_desc
|
ircd::net::acceptor::accept_desc
|
||||||
{
|
{
|
||||||
"ircd.net.acceptor.accept"
|
"ircd.net.acceptor.accept"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::net::acceptor::handshake_desc)
|
decltype(ircd::net::acceptor::handshake_desc)
|
||||||
ircd::net::acceptor::handshake_desc
|
ircd::net::acceptor::handshake_desc
|
||||||
{
|
{
|
||||||
|
|
|
@ -573,6 +573,7 @@ const
|
||||||
return ss.str();
|
return ss.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::rfc1035::rcode)
|
decltype(ircd::rfc1035::rcode)
|
||||||
ircd::rfc1035::rcode
|
ircd::rfc1035::rcode
|
||||||
{
|
{
|
||||||
|
@ -603,6 +604,7 @@ ircd::rfc1035::rcode
|
||||||
"BADCOOKIE Bad/missing Server Cookie [RFC7873]", // 24
|
"BADCOOKIE Bad/missing Server Cookie [RFC7873]", // 24
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::rfc1035::qtype)
|
decltype(ircd::rfc1035::qtype)
|
||||||
ircd::rfc1035::qtype
|
ircd::rfc1035::qtype
|
||||||
{
|
{
|
||||||
|
@ -692,6 +694,7 @@ ircd::rfc1035::qtype
|
||||||
{ "TA", 32768 }, // DNSSEC Trust Authorities [Sam_Weiler][http://cameo.library.cmu.edu/]
|
{ "TA", 32768 }, // DNSSEC Trust Authorities [Sam_Weiler][http://cameo.library.cmu.edu/]
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::rfc1035::rqtype)
|
decltype(ircd::rfc1035::rqtype)
|
||||||
ircd::rfc1035::rqtype{[]
|
ircd::rfc1035::rqtype{[]
|
||||||
{
|
{
|
||||||
|
|
|
@ -711,6 +711,7 @@ decltype(ircd::server::peer::sock_opts)
|
||||||
ircd::server::peer::sock_opts
|
ircd::server::peer::sock_opts
|
||||||
{};
|
{};
|
||||||
|
|
||||||
|
[[clang::always_destroy]]
|
||||||
decltype(ircd::server::peer::close_desc)
|
decltype(ircd::server::peer::close_desc)
|
||||||
ircd::server::peer::close_desc
|
ircd::server::peer::close_desc
|
||||||
{
|
{
|
||||||
|
|
|
@ -445,6 +445,7 @@ ircd::util::a2u(const mutable_buffer &out,
|
||||||
ircd::util::unwind_defer::~unwind_defer()
|
ircd::util::unwind_defer::~unwind_defer()
|
||||||
noexcept
|
noexcept
|
||||||
{
|
{
|
||||||
|
[[clang::always_destroy]]
|
||||||
static ios::descriptor descriptor
|
static ios::descriptor descriptor
|
||||||
{
|
{
|
||||||
"ircd.unwind"
|
"ircd.unwind"
|
||||||
|
|
Loading…
Reference in a new issue