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);
     }
 }