This is an automated email from the ASF dual-hosted git repository.

swebb2066 pushed a commit to branch serialize_threads_in_close
in repository https://gitbox.apache.org/repos/asf/logging-log4cxx.git


The following commit(s) were added to refs/heads/serialize_threads_in_close by 
this push:
     new cffdaf75 Fix NTEventLogAppender
cffdaf75 is described below

commit cffdaf759d0cc2e06bf0d84d6a7e3fefd42b0c41
Author: Stephen Webb <[email protected]>
AuthorDate: Fri Mar 6 16:10:53 2026 +1100

    Fix NTEventLogAppender
---
 src/main/cpp/nteventlogappender.cpp | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/main/cpp/nteventlogappender.cpp 
b/src/main/cpp/nteventlogappender.cpp
index ff6b57d1..e00ff4a4 100644
--- a/src/main/cpp/nteventlogappender.cpp
+++ b/src/main/cpp/nteventlogappender.cpp
@@ -50,6 +50,8 @@ struct NTEventLogAppender::NTEventLogAppenderPrivate : public 
AppenderSkeleton::
        LogString source;
        HANDLE hEventLog;
        SID* pCurrentUserSID;
+
+       void close();
 };
 
 class CCtUserSIDHelper
@@ -134,17 +136,21 @@ NTEventLogAppender::~NTEventLogAppender()
 void NTEventLogAppender::close()
 {
        priv->setClosed();
+       priv->close();
+}
 
-       if (priv->hEventLog != NULL)
+void NTEventLogAppender::NTEventLogAppenderPrivate::close()
+{
+       if (this->hEventLog != NULL)
        {
-               ::DeregisterEventSource(priv->hEventLog);
-               priv->hEventLog = NULL;
+               ::DeregisterEventSource(this->hEventLog);
+               this->hEventLog = NULL;
        }
 
-       if (priv->pCurrentUserSID != NULL)
+       if (this->pCurrentUserSID != NULL)
        {
-               CCtUserSIDHelper::FreeSid((::SID*) priv->pCurrentUserSID);
-               priv->pCurrentUserSID = NULL;
+               CCtUserSIDHelper::FreeSid((::SID*) this->pCurrentUserSID);
+               this->pCurrentUserSID = NULL;
        }
 }
 
@@ -183,7 +189,7 @@ void NTEventLogAppender::activateOptions(Pool&)
                priv->log = LOG4CXX_STR("Application");
        }
 
-       close();
+       priv->close();
 
        // current user security identifier
        CCtUserSIDHelper::GetCurrentUserSID((::SID**) &priv->pCurrentUserSID);

Reply via email to