You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2016/09/04 18:38:31 UTC
[15/36] logging-log4j2 git commit: Make SpinPolicy configurable in
DisruptorBlockingQueueFactory
Make SpinPolicy configurable in DisruptorBlockingQueueFactory
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/68e8ecb8
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/68e8ecb8
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/68e8ecb8
Branch: refs/heads/master
Commit: 68e8ecb810adf46819b7181b45512a111cfd32b4
Parents: c2d75fa
Author: Matt Sicker <bo...@gmail.com>
Authored: Fri Jun 17 19:07:59 2016 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Fri Jun 17 19:07:59 2016 -0500
----------------------------------------------------------------------
.../core/async/DisruptorBlockingQueueFactory.java | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/68e8ecb8/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java
index add375d..9b85ae6 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/DisruptorBlockingQueueFactory.java
@@ -3,8 +3,10 @@ package org.apache.logging.log4j.core.async;
import java.util.concurrent.BlockingQueue;
import com.conversantmedia.util.concurrent.DisruptorBlockingQueue;
+import com.conversantmedia.util.concurrent.SpinPolicy;
import org.apache.logging.log4j.core.config.Node;
import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
import org.apache.logging.log4j.core.config.plugins.PluginFactory;
/**
@@ -14,13 +16,22 @@ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
*/
@Plugin(name = "DisruptorBlockingQueue", category = Node.CATEGORY, elementType = BlockingQueueFactory.ELEMENT_TYPE)
public class DisruptorBlockingQueueFactory<E> implements BlockingQueueFactory<E> {
+
+ private final SpinPolicy spinPolicy;
+
+ private DisruptorBlockingQueueFactory(final SpinPolicy spinPolicy) {
+ this.spinPolicy = spinPolicy;
+ }
+
@Override
public BlockingQueue<E> create(int capacity) {
- return new DisruptorBlockingQueue<>(capacity);
+ return new DisruptorBlockingQueue<>(capacity, spinPolicy);
}
@PluginFactory
- public static <E> DisruptorBlockingQueueFactory<E> createFactory() {
- return new DisruptorBlockingQueueFactory<>();
+ public static <E> DisruptorBlockingQueueFactory<E> createFactory(
+ @PluginAttribute(value = "SpinPolicy", defaultString = "WAITING") final SpinPolicy spinPolicy
+ ) {
+ return new DisruptorBlockingQueueFactory<>(spinPolicy);
}
}