@@ -49,11 +49,12 @@ void GelfWriter::StatsFunc(const Dictionary::Ptr& status, const Array::Ptr& perf
4949 for (const GelfWriter::Ptr& gelfwriter : ConfigType::GetObjectsByType<GelfWriter>()) {
5050 size_t workQueueItems = gelfwriter->m_WorkQueue .GetLength ();
5151 double workQueueItemRate = gelfwriter->m_WorkQueue .GetTaskCount (60 ) / 60.0 ;
52+ auto connection = gelfwriter->m_LockedConnection .load ();
5253
5354 nodes.emplace_back (gelfwriter->GetName (), new Dictionary ({
5455 { " work_queue_items" , workQueueItems },
5556 { " work_queue_item_rate" , workQueueItemRate },
56- { " connected" , gelfwriter-> m_Connection ->IsConnected () },
57+ { " connected" , connection && connection ->IsConnected () },
5758 { " source" , gelfwriter->GetSource () }
5859 }));
5960
@@ -91,6 +92,7 @@ void GelfWriter::Resume()
9192 m_WorkQueue.SetExceptionCallback ([this ](boost::exception_ptr exp) { ExceptionHandler (std::move (exp)); });
9293
9394 m_Connection = new PerfdataWriterConnection{this , GetHost (), GetPort (), m_SslContext, !GetInsecureNoverify ()};
95+ m_LockedConnection.store (m_Connection);
9496
9597 /* Register event handlers. */
9698 m_HandleCheckResults = Checkable::OnNewCheckResult.connect ([this ](const Checkable::Ptr& checkable,
0 commit comments