return result;
}
+static void asyncFrameStreamLoggersCleanup(std::shared_ptr<std::vector<std::unique_ptr<FrameStreamLogger>>>&& servers)
+{
+ auto thread = std::thread([&] {
+ servers.reset();
+ });
+ thread.detach();
+}
+
bool checkFrameStreamExport(LocalStateHolder<LuaConfigItems>& luaconfsLocal)
{
if (!luaconfsLocal->frameStreamExportConfig.enabled) {
if (t_frameStreamServersInfo.servers) {
// dt's take care of cleanup
- t_frameStreamServersInfo.servers.reset();
+ asyncFrameStreamLoggersCleanup(std::move(t_frameStreamServersInfo.servers));
t_frameStreamServersInfo.config = luaconfsLocal->frameStreamExportConfig;
}
if (t_frameStreamServersInfo.generation < luaconfsLocal->generation && t_frameStreamServersInfo.config != luaconfsLocal->frameStreamExportConfig) {
if (t_frameStreamServersInfo.servers) {
// dt's take care of cleanup
- t_frameStreamServersInfo.servers.reset();
+ asyncFrameStreamLoggersCleanup(std::move(t_frameStreamServersInfo.servers));
}
auto dnsTapLog = g_slog->withName("dnstap");