I've gone and submitted feature requests to LMAX, Conversant, and JCTools to add support for it. I don't think we're using any other libraries where this would be relevant.
On 18 December 2016 at 11:32, Matt Sicker <boa...@gmail.com> wrote: > I see they're using spin locks in Conversant Disruptor: < > https://github.com/conversant/disruptor/blob/master/src/main/java/com/ > conversantmedia/util/concurrent/AbstractSpinningCondition.java>. I'd > imagine something similar is in JCTools and LMAX, so it would be useful to > request support for this upstream. > > From what I can tell, LinkedTransferQueue in JDK9 doesn't rely on spin > locks as it's using an interesting algorithm whose documentation is > literally half the source file. I see that they've updated it to use > VarHandles instead of Unsafe, though, so there's that, too. > > On 18 December 2016 at 06:43, Remko Popma <remko.po...@gmail.com> wrote: > >> >> >> >> Sent from my iPhone >> On 18 Dec 2016, at 13:05, Remko Popma <remko.po...@gmail.com> wrote: >> >> I don't think we use spin locks in production code anywhere. >> >> The latency test has a wait strategy interface and one of the >> implementations is spinning. I need to check the comments but not sure if I >> used that strategy for the latency tests for the garbage free performance >> page. >> >> >> I just noticed that Gil Tene authored JEP 285. He is also the author of >> the Pacer class used in our latency test (https://github.com/apache/log >> ging-log4j2/blob/master/log4j-core/src/test/java/org/apache/ >> logging/log4j/core/async/perftest/ResponseTimeTest.java) >> >> Our test checks the number of cores, and if sufficient, it uses the >> NoOpIdleStrategy >> (spin wait). The alternative is yielding the thread, but who knows when the >> thread gets scheduled again (and on which core - a different core means the >> cache is cold). For latency measurements of short duration, the hope is >> that a spinning wait introduces less noise. >> >> >> >> Sent from my iPhone >> >> On 18 Dec 2016, at 10:10, Matt Sicker <boa...@gmail.com> wrote: >> >> I thought we were using it in AppenderControlArraySet for example, but it >> doesn't look like it really matches the idea. I've been reading through all >> the JEPs in JDK9 to see if there's anything else useful we haven't already >> marked in our epic <https://issues.apache.org/jira/browse/LOG4J2-1564>, >> and I found Thread.onSpinWait() <http://openjdk.java.net/jeps/285> which >> looked useful, but I'm not sure of anywhere we could use it. >> >> -- >> Matt Sicker <boa...@gmail.com> >> >> > > > -- > Matt Sicker <boa...@gmail.com> > -- Matt Sicker <boa...@gmail.com>