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

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


The following commit(s) were added to refs/heads/master by this push:
     new d9daa717 Prevent potential deadlock on shutdown when using 
AsyncAppender (#319)
d9daa717 is described below

commit d9daa7178f4bf614dd11b99e7618233e49535863
Author: Stephen Webb <[email protected]>
AuthorDate: Tue Dec 26 12:43:26 2023 +1100

    Prevent potential deadlock on shutdown when using AsyncAppender (#319)
---
 src/main/cpp/asyncappender.cpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/main/cpp/asyncappender.cpp b/src/main/cpp/asyncappender.cpp
index 07083474..c8389840 100644
--- a/src/main/cpp/asyncappender.cpp
+++ b/src/main/cpp/asyncappender.cpp
@@ -502,13 +502,19 @@ void AsyncAppender::dispatch()
                        }
                        catch (std::exception& ex)
                        {
-                               priv->errorHandler->error(LOG4CXX_STR("async 
dispatcher"), ex, 0, *iter);
-                               isActive = false;
+                               if (isActive)
+                               {
+                                       
priv->errorHandler->error(LOG4CXX_STR("async dispatcher"), ex, 0, *iter);
+                                       isActive = false;
+                               }
                        }
                        catch (...)
                        {
-                               priv->errorHandler->error(LOG4CXX_STR("async 
dispatcher"));
-                               isActive = false;
+                               if (isActive)
+                               {
+                                       
priv->errorHandler->error(LOG4CXX_STR("async dispatcher"));
+                                       isActive = false;
+                               }
                        }
                }
        }

Reply via email to