Honestly, the only reason I added it here was because it's available. I do
know that concurrency fairness is almost always the wrong thing to do,
though. I can remove it.

On 17 June 2016 at 20:50, Remko Popma <remko.po...@gmail.com> wrote:

> Is there any reason to expose fairness as a user configurable parameter?
>
> The thing is that it sounds like a good thing (so users are likely to
> switch it on) but actually hampers performance and in our case there's no
> real reason to require fairness...
>
> Sent from my iPhone
>
> > On 2016/06/18, at 9:10, mattsic...@apache.org wrote:
> >
> > Repository: logging-log4j2
> > Updated Branches:
> >  refs/heads/feature/LOG4J2-1430 68e8ecb81 -> bf997fc10
> >
> >
> > Make fairness configurable in ArrayBlockingQueueFactory
> >
> >
> > Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
> > Commit:
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/bf997fc1
> > Tree:
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/bf997fc1
> > Diff:
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/bf997fc1
> >
> > Branch: refs/heads/feature/LOG4J2-1430
> > Commit: bf997fc1007e70a526bb20b6c90e63202c6f0886
> > Parents: 68e8ecb
> > Author: Matt Sicker <boa...@gmail.com>
> > Authored: Fri Jun 17 19:10:12 2016 -0500
> > Committer: Matt Sicker <boa...@gmail.com>
> > Committed: Fri Jun 17 19:10:12 2016 -0500
> >
> > ----------------------------------------------------------------------
> > .../log4j/core/async/ArrayBlockingQueueFactory.java   | 14 +++++++++++---
> > 1 file changed, 11 insertions(+), 3 deletions(-)
> > ----------------------------------------------------------------------
> >
> >
> >
> http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/bf997fc1/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
> > ----------------------------------------------------------------------
> > diff --git
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
> > index dcad78a..ef1f05d 100644
> > ---
> a/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
> > +++
> b/log4j-core/src/main/java/org/apache/logging/log4j/core/async/ArrayBlockingQueueFactory.java
> > @@ -5,6 +5,7 @@ import java.util.concurrent.BlockingQueue;
> >
> > 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 +15,20 @@ import
> org.apache.logging.log4j.core.config.plugins.PluginFactory;
> >  */
> > @Plugin(name = "ArrayBlockingQueue", category = Node.CATEGORY,
> elementType = BlockingQueueFactory.ELEMENT_TYPE)
> > public class ArrayBlockingQueueFactory<E> implements
> BlockingQueueFactory<E> {
> > +
> > +    private final boolean fair;
> > +
> > +    private ArrayBlockingQueueFactory(final boolean fair) {
> > +        this.fair = fair;
> > +    }
> > +
> >     @Override
> >     public BlockingQueue<E> create(int capacity) {
> > -        return new ArrayBlockingQueue<>(capacity);
> > +        return new ArrayBlockingQueue<>(capacity, fair);
> >     }
> >
> >     @PluginFactory
> > -    public static <E> ArrayBlockingQueueFactory<E> createFactory() {
> > -        return new ArrayBlockingQueueFactory<>();
> > +    public static <E> ArrayBlockingQueueFactory<E>
> createFactory(@PluginAttribute("fair") final boolean fair) {
> > +        return new ArrayBlockingQueueFactory<>(fair);
> >     }
> > }
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org
> For additional commands, e-mail: log4j-dev-h...@logging.apache.org
>
>


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to