From a48691731b7f36f9909df55e7fc8e401554bb049 Mon Sep 17 00:00:00 2001 From: Denys Smolianiuk Date: Wed, 29 Aug 2018 16:49:10 +0300 Subject: [PATCH 1/2] Before closing process events already present in queue --- src/main/cpp/asyncappender_nonblocking.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/cpp/asyncappender_nonblocking.cpp b/src/main/cpp/asyncappender_nonblocking.cpp index b6cedfaf2..25ad7ff43 100644 --- a/src/main/cpp/asyncappender_nonblocking.cpp +++ b/src/main/cpp/asyncappender_nonblocking.cpp @@ -340,7 +340,7 @@ AsyncAppender::DiscardSummary::createEvent(::log4cxx::helpers::Pool& p, void* LOG4CXX_THREAD_FUNC AsyncAppender::dispatch(apr_thread_t* /*thread*/, void* data) { AsyncAppender* pThis = (AsyncAppender*) data; try { - while (!pThis->closed) { + while (!pThis->closed || !pThis->buffer.empty()) { pThis->bufferNotEmpty.await(); From 285f36f698c37a27d1caed36b941cb041a3080ee Mon Sep 17 00:00:00 2001 From: Denys Smolianiuk Date: Wed, 29 Aug 2018 16:50:28 +0300 Subject: [PATCH 2/2] Increase number of events in unit-test as it is not possible to descrease capacity of boost atomic queue --- src/test/cpp/asyncappendertestcase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/cpp/asyncappendertestcase.cpp b/src/test/cpp/asyncappendertestcase.cpp index 06e58e903..61853d471 100644 --- a/src/test/cpp/asyncappendertestcase.cpp +++ b/src/test/cpp/asyncappendertestcase.cpp @@ -236,7 +236,7 @@ class AsyncAppenderTestCase : public AppenderSkeletonTestCase rootLogger->addAppender(async); { synchronized sync(blockableAppender->getBlocker()); - for (int i = 0; i < 100; i++) { + for (int i = 0; i < 140; i++) { LOG4CXX_INFO(rootLogger, "Hello, World"); Thread::sleep(1); }