Skip to content

Commit

Permalink
Striped counters implementations became package-private, CountersFact…
Browse files Browse the repository at this point in the history
…ory new methods added
  • Loading branch information
qwwdfsad committed Mar 13, 2016
1 parent 3c94b8c commit e5a9dd4
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package org.jctools.jmh.counters;

import org.jctools.counters.FixedSizeStripedLongCounterV6;
import org.jctools.counters.FixedSizeStripedLongCounterV8;
import org.jctools.counters.FixedSizeStripedLongCounter;
import org.openjdk.jmh.annotations.CompilerControl;
import org.openjdk.jmh.annotations.CompilerControl.Mode;

Expand Down Expand Up @@ -29,9 +28,11 @@ static Counter build(CounterType type) {
case LongAdder:
return new LongAdderCounter();
case FixedSizeStripedV6:
return new FixedSizeStripedCounterV6(STRIPES_COUNT);
return new FixedSizeStripedCounter(
org.jctools.counters.CountersFactory.createFixedSizeStripedCounterV6(STRIPES_COUNT));
case FixedSizeStripedV8:
return new FixedSizeStripedCounterV8(STRIPES_COUNT);
return new FixedSizeStripedCounter(
org.jctools.counters.CountersFactory.createFixedSizeStripedCounterV8(STRIPES_COUNT));
default:
throw new IllegalArgumentException();
}
Expand Down Expand Up @@ -63,15 +64,23 @@ public long get() {
}
}

static class FixedSizeStripedCounterV6 extends FixedSizeStripedLongCounterV6 implements Counter {
public FixedSizeStripedCounterV6(int stripesCount) {
super(stripesCount);
static class FixedSizeStripedCounter implements Counter {
private FixedSizeStripedLongCounter counter;

public FixedSizeStripedCounter(FixedSizeStripedLongCounter impl) {
counter = impl;
}

@Override
@CompilerControl(Mode.INLINE)
public void inc() {
counter.inc();
}
}

static class FixedSizeStripedCounterV8 extends FixedSizeStripedLongCounterV8 implements Counter {
public FixedSizeStripedCounterV8(int stripesCount) {
super(stripesCount);
@Override
@CompilerControl(Mode.INLINE)
public long get() {
return counter.get();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ public final class CountersFactory {
private CountersFactory() {
}

public static Counter createFixedSizeStripedCounter(int stripesCount) {
public static FixedSizeStripedLongCounter createFixedSizeStripedCounter(int stripesCount) {
// Assuming that if Unsafe has getAndSet(Object, Long, Object) then it has
// all JDK 8+ methods like getAndAddX, getAndSetX etc.
if (UnsafeAccess.SUPPORTS_GET_AND_SET) {
Expand All @@ -19,4 +19,12 @@ public static Counter createFixedSizeStripedCounter(int stripesCount) {
return new FixedSizeStripedLongCounterV6(stripesCount);
}
}

public static FixedSizeStripedLongCounter createFixedSizeStripedCounterV6(int stripesCount) {
return new FixedSizeStripedLongCounterV6(stripesCount);
}

public static FixedSizeStripedLongCounter createFixedSizeStripedCounterV8(int stripesCount) {
return new FixedSizeStripedLongCounterV8(stripesCount);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
*
* @author Tolstopyatov Vsevolod
*/
abstract class FixedSizeStripedLongCounter extends PaddedHeader implements Counter {
public abstract class FixedSizeStripedLongCounter extends PaddedHeader implements Counter {

private static final int LONG_ARRAY_BASE = Unsafe.ARRAY_LONG_BASE_OFFSET;
private static final int LONG_SCALE_SHIFT = 3;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*
* @author Tolstopyatov Vsevolod
*/
public class FixedSizeStripedLongCounterV6 extends FixedSizeStripedLongCounter {
class FixedSizeStripedLongCounterV6 extends FixedSizeStripedLongCounter {

public FixedSizeStripedLongCounterV6(int stripesCount) {
super(stripesCount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*
* @author Tolstopyatov Vsevolod
*/
public class FixedSizeStripedLongCounterV8 extends FixedSizeStripedLongCounter {
class FixedSizeStripedLongCounterV8 extends FixedSizeStripedLongCounter {

public FixedSizeStripedLongCounterV8(int stripesCount) {
super(stripesCount);
Expand Down

0 comments on commit e5a9dd4

Please sign in to comment.