This is an automated email from the ASF dual-hosted git repository. rpopma pushed a commit to branch release-2.x in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit 97b8c1dc4f320e855f26a0690651fc062f08361a Author: Remko Popma <rem...@yahoo.com> AuthorDate: Fri Apr 22 05:15:15 2022 +0900 LOG4J2-3473 DOC update manual for garbage-free logging --- src/site/xdoc/manual/garbagefree.xml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/site/xdoc/manual/garbagefree.xml b/src/site/xdoc/manual/garbagefree.xml index b1c50aef39..6f68a37673 100644 --- a/src/site/xdoc/manual/garbagefree.xml +++ b/src/site/xdoc/manual/garbagefree.xml @@ -111,9 +111,12 @@ will result in temporary objects being created during steady-state logging. </p> <p> - <b>Note 2:</b> the Async Logger Timeout wait strategy (the default) and the Block wait strategy + <b>Note 2:</b> as of version 2.17.3, the default Async Logger wait strategy used by Log4j + (Timeout) is garbage-free. Some of the wait strategies included in LMAX disruptor 3.4.4, + especially <tt>TimeoutBlockingWaitStrategy</tt> and <tt>BlockingWaitStrategy</tt> (Block) are not garbage-free since they cause <tt>java.util.concurrent.locks.AbstractQueuedSynchronizer$Node</tt> objects to be created. + The default wait strategy used by Log4j uses a synchronized block instead of a ReentrantLock to avoid this problem. The Yield and Sleep wait strategies are garbage-free. (For configuring predefined wait strategies, see <a href="async.html#SysPropsAllAsync">here</a> and <a href="async.html#SysPropsMixedSync-Async">here</a>,