Skip to content

Commit d98f77c

Browse files
1.x Provide public constant instead of UnsafeAccess.isUnsafeAvailable()
1 parent 7f6644c commit d98f77c

14 files changed

+41
-42
lines changed

src/main/java/rx/internal/operators/OnSubscribeConcatMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ public ConcatMapSubscriber(Subscriber<? super R> actual,
125125
this.wip = new AtomicInteger();
126126
this.error = new AtomicReference<Throwable>();
127127
Queue<Object> q;
128-
if (UnsafeAccess.isUnsafeAvailable()) {
128+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
129129
q = new SpscArrayQueue<Object>(prefetch);
130130
} else {
131131
q = new SpscAtomicArrayQueue<Object>(prefetch);

src/main/java/rx/internal/operators/OnSubscribePublishMulticast.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ public OnSubscribePublishMulticast(int prefetch, boolean delayError) {
104104
}
105105
this.prefetch = prefetch;
106106
this.delayError = delayError;
107-
if (UnsafeAccess.isUnsafeAvailable()) {
107+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
108108
this.queue = new SpscArrayQueue<T>(prefetch);
109109
} else {
110110
this.queue = new SpscAtomicArrayQueue<T>(prefetch);

src/main/java/rx/internal/operators/OperatorEagerConcatMap.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ public EagerInnerSubscriber(EagerOuterSubscriber<?, T> parent, int bufferSize) {
282282
super();
283283
this.parent = parent;
284284
Queue<Object> q;
285-
if (UnsafeAccess.isUnsafeAvailable()) {
285+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
286286
q = new SpscArrayQueue<Object>(bufferSize);
287287
} else {
288288
q = new SpscAtomicArrayQueue<Object>(bufferSize);

src/main/java/rx/internal/operators/OperatorMerge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ protected void queueScalar(T value) {
464464
q = new SpscUnboundedAtomicArrayQueue<Object>(RxRingBuffer.SIZE);
465465
} else {
466466
if (Pow2.isPowerOfTwo(mc)) {
467-
if (UnsafeAccess.isUnsafeAvailable()) {
467+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
468468
q = new SpscArrayQueue<Object>(mc);
469469
} else {
470470
q = new SpscAtomicArrayQueue<Object>(mc);

src/main/java/rx/internal/operators/OperatorObserveOn.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public ObserveOnSubscriber(Scheduler scheduler, Subscriber<? super T> child, boo
106106
this.delayError = delayError;
107107
this.on = NotificationLite.instance();
108108
this.bufferSize = (bufferSize > 0) ? bufferSize : RxRingBuffer.SIZE;
109-
if (UnsafeAccess.isUnsafeAvailable()) {
109+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
110110
queue = new SpscArrayQueue<Object>(this.bufferSize);
111111
} else {
112112
queue = new SpscAtomicArrayQueue<Object>(this.bufferSize);

src/main/java/rx/internal/operators/OperatorPublish.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ static final class PublishSubscriber<T> extends Subscriber<T> implements Subscri
244244
boolean missed;
245245

246246
public PublishSubscriber(AtomicReference<PublishSubscriber<T>> current) {
247-
this.queue = UnsafeAccess.isUnsafeAvailable()
247+
this.queue = UnsafeAccess.IS_UNSAFE_AVAILABLE
248248
? new SpscArrayQueue<Object>(RxRingBuffer.SIZE)
249249
: new SynchronizedQueue<Object>(RxRingBuffer.SIZE);
250250

src/main/java/rx/internal/operators/OperatorScan.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ public InitialProducer(R initialValue, Subscriber<? super R> child) {
186186
this.child = child;
187187
Queue<Object> q;
188188
// TODO switch to the linked-array based queue once available
189-
if (UnsafeAccess.isUnsafeAvailable()) {
189+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
190190
q = new SpscLinkedQueue<Object>(); // new SpscUnboundedArrayQueue<R>(8);
191191
} else {
192192
q = new SpscLinkedAtomicQueue<Object>(); // new SpscUnboundedAtomicArrayQueue<R>(8);

src/main/java/rx/internal/operators/UnicastSubject.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,11 @@ public State(int capacityHint, Action0 onTerminated) {
146146

147147
Queue<Object> q;
148148
if (capacityHint > 1) {
149-
q = UnsafeAccess.isUnsafeAvailable()
149+
q = UnsafeAccess.IS_UNSAFE_AVAILABLE
150150
? new SpscUnboundedArrayQueue<Object>(capacityHint)
151151
: new SpscUnboundedAtomicArrayQueue<Object>(capacityHint);
152152
} else {
153-
q = UnsafeAccess.isUnsafeAvailable()
153+
q = UnsafeAccess.IS_UNSAFE_AVAILABLE
154154
? new SpscLinkedQueue<Object>()
155155
: new SpscLinkedAtomicQueue<Object>();
156156
}

src/main/java/rx/internal/producers/QueuedProducer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public final class QueuedProducer<T> extends AtomicLong implements Producer, Obs
5050
* @param child the target child subscriber
5151
*/
5252
public QueuedProducer(Subscriber<? super T> child) {
53-
this(child, UnsafeAccess.isUnsafeAvailable()
53+
this(child, UnsafeAccess.IS_UNSAFE_AVAILABLE
5454
? new SpscLinkedQueue<Object>() : new SpscLinkedAtomicQueue<Object>());
5555
}
5656
/**

src/main/java/rx/internal/producers/QueuedValueProducer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public final class QueuedValueProducer<T> extends AtomicLong implements Producer
4747
* @param child the target child subscriber
4848
*/
4949
public QueuedValueProducer(Subscriber<? super T> child) {
50-
this(child, UnsafeAccess.isUnsafeAvailable()
50+
this(child, UnsafeAccess.IS_UNSAFE_AVAILABLE
5151
? new SpscLinkedQueue<Object>() : new SpscLinkedAtomicQueue<Object>());
5252
}
5353
/**

src/main/java/rx/internal/util/ObjectPool.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ public void call() {
139139
protected abstract T createObject();
140140

141141
private void initialize(final int min) {
142-
if (UnsafeAccess.isUnsafeAvailable()) {
142+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
143143
pool = new MpmcArrayQueue<T>(Math.max(maxSize, 1024));
144144
} else {
145145
pool = new ConcurrentLinkedQueue<T>();

src/main/java/rx/internal/util/RxRingBuffer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,15 @@
3333
public class RxRingBuffer implements Subscription {
3434

3535
public static RxRingBuffer getSpscInstance() {
36-
if (UnsafeAccess.isUnsafeAvailable()) {
36+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
3737
return new RxRingBuffer(SPSC_POOL, SIZE);
3838
} else {
3939
return new RxRingBuffer();
4040
}
4141
}
4242

4343
public static RxRingBuffer getSpmcInstance() {
44-
if (UnsafeAccess.isUnsafeAvailable()) {
44+
if (UnsafeAccess.IS_UNSAFE_AVAILABLE) {
4545
return new RxRingBuffer(SPMC_POOL, SIZE);
4646
} else {
4747
return new RxRingBuffer();

src/main/java/rx/internal/util/unsafe/UnsafeAccess.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,17 @@
2020
import sun.misc.Unsafe;
2121

2222
/**
23-
* All use of this class MUST first check that UnsafeAccess.isUnsafeAvailable() == true
23+
* All use of this class MUST first check that {@code UnsafeAccess.IS_UNSAFE_AVAILABLE == true}
2424
* otherwise NPEs will happen in environments without "suc.misc.Unsafe" such as Android.
2525
*/
2626
public final class UnsafeAccess {
2727
private UnsafeAccess() {
2828
throw new IllegalStateException("No instances!");
2929
}
3030

31-
public static final Unsafe UNSAFE;
31+
static final Unsafe UNSAFE;
32+
public static final boolean IS_UNSAFE_AVAILABLE;
33+
3234
static {
3335
Unsafe u = null;
3436
try {
@@ -45,10 +47,7 @@ private UnsafeAccess() {
4547
// do nothing, hasUnsafe() will return false
4648
}
4749
UNSAFE = u;
48-
}
49-
50-
public static boolean isUnsafeAvailable() {
51-
return UNSAFE != null;
50+
IS_UNSAFE_AVAILABLE = UNSAFE != null;
5251
}
5352

5453
/*

src/test/java/rx/internal/util/JCToolsQueueTests.java

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ static void await(CyclicBarrier cb) {
4141
}
4242
@Test
4343
public void casBasedUnsafe() {
44-
if (!UnsafeAccess.isUnsafeAvailable()) {
44+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
4545
return;
4646
}
4747
long offset = UnsafeAccess.addressOf(IntField.class, "value");
@@ -74,7 +74,7 @@ public void powerOfTwo() {
7474

7575
@Test(expected = NullPointerException.class)
7676
public void testMpmcArrayQueueNull() {
77-
if (!UnsafeAccess.isUnsafeAvailable()) {
77+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
7878
return;
7979
}
8080
MpmcArrayQueue<Integer> q = new MpmcArrayQueue<Integer>(16);
@@ -83,7 +83,7 @@ public void testMpmcArrayQueueNull() {
8383

8484
@Test(expected = UnsupportedOperationException.class)
8585
public void testMpmcArrayQueueIterator() {
86-
if (!UnsafeAccess.isUnsafeAvailable()) {
86+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
8787
return;
8888
}
8989
MpmcArrayQueue<Integer> q = new MpmcArrayQueue<Integer>(16);
@@ -92,7 +92,7 @@ public void testMpmcArrayQueueIterator() {
9292

9393
@Test
9494
public void testMpmcArrayQueueOfferPoll() {
95-
if (!UnsafeAccess.isUnsafeAvailable()) {
95+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
9696
return;
9797
}
9898
Queue<Integer> q = new MpmcArrayQueue<Integer>(128);
@@ -102,7 +102,7 @@ public void testMpmcArrayQueueOfferPoll() {
102102

103103
@Test
104104
public void testMpmcOfferUpToCapacity() {
105-
if (!UnsafeAccess.isUnsafeAvailable()) {
105+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
106106
return;
107107
}
108108
int n = 128;
@@ -176,7 +176,7 @@ public void run() {
176176

177177
@Test(expected = UnsupportedOperationException.class)
178178
public void testMpscLinkedQueueIterator() {
179-
if (!UnsafeAccess.isUnsafeAvailable()) {
179+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
180180
return;
181181
}
182182
MpscLinkedQueue<Integer> q = new MpscLinkedQueue<Integer>();
@@ -185,7 +185,7 @@ public void testMpscLinkedQueueIterator() {
185185

186186
@Test(expected = NullPointerException.class)
187187
public void testMpscLinkedQueueNull() {
188-
if (!UnsafeAccess.isUnsafeAvailable()) {
188+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
189189
return;
190190
}
191191
MpscLinkedQueue<Integer> q = new MpscLinkedQueue<Integer>();
@@ -194,7 +194,7 @@ public void testMpscLinkedQueueNull() {
194194

195195
@Test
196196
public void testMpscLinkedQueueOfferPoll() {
197-
if (!UnsafeAccess.isUnsafeAvailable()) {
197+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
198198
return;
199199
}
200200
MpscLinkedQueue<Integer> q = new MpscLinkedQueue<Integer>();
@@ -203,7 +203,7 @@ public void testMpscLinkedQueueOfferPoll() {
203203
}
204204
@Test(timeout = 2000)
205205
public void testMpscLinkedQueuePipelined() throws InterruptedException {
206-
if (!UnsafeAccess.isUnsafeAvailable()) {
206+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
207207
return;
208208
}
209209
final MpscLinkedQueue<Integer> q = new MpscLinkedQueue<Integer>();
@@ -273,7 +273,7 @@ protected void testOfferPoll(Queue<Integer> q) {
273273

274274
@Test(expected = NullPointerException.class)
275275
public void testSpmcArrayQueueNull() {
276-
if (!UnsafeAccess.isUnsafeAvailable()) {
276+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
277277
return;
278278
}
279279
SpmcArrayQueue<Integer> q = new SpmcArrayQueue<Integer>(16);
@@ -282,7 +282,7 @@ public void testSpmcArrayQueueNull() {
282282

283283
@Test
284284
public void testSpmcArrayQueueOfferPoll() {
285-
if (!UnsafeAccess.isUnsafeAvailable()) {
285+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
286286
return;
287287
}
288288
Queue<Integer> q = new SpmcArrayQueue<Integer>(128);
@@ -291,7 +291,7 @@ public void testSpmcArrayQueueOfferPoll() {
291291
}
292292
@Test(expected = UnsupportedOperationException.class)
293293
public void testSpmcArrayQueueIterator() {
294-
if (!UnsafeAccess.isUnsafeAvailable()) {
294+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
295295
return;
296296
}
297297
SpmcArrayQueue<Integer> q = new SpmcArrayQueue<Integer>(16);
@@ -300,7 +300,7 @@ public void testSpmcArrayQueueIterator() {
300300

301301
@Test
302302
public void testSpmcOfferUpToCapacity() {
303-
if (!UnsafeAccess.isUnsafeAvailable()) {
303+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
304304
return;
305305
}
306306
int n = 128;
@@ -313,7 +313,7 @@ public void testSpmcOfferUpToCapacity() {
313313

314314
@Test(expected = NullPointerException.class)
315315
public void testSpscArrayQueueNull() {
316-
if (!UnsafeAccess.isUnsafeAvailable()) {
316+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
317317
return;
318318
}
319319
SpscArrayQueue<Integer> q = new SpscArrayQueue<Integer>(16);
@@ -322,7 +322,7 @@ public void testSpscArrayQueueNull() {
322322

323323
@Test
324324
public void testSpscArrayQueueOfferPoll() {
325-
if (!UnsafeAccess.isUnsafeAvailable()) {
325+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
326326
return;
327327
}
328328
Queue<Integer> q = new SpscArrayQueue<Integer>(128);
@@ -331,7 +331,7 @@ public void testSpscArrayQueueOfferPoll() {
331331
}
332332
@Test(expected = UnsupportedOperationException.class)
333333
public void testSpscArrayQueueIterator() {
334-
if (!UnsafeAccess.isUnsafeAvailable()) {
334+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
335335
return;
336336
}
337337
SpscArrayQueue<Integer> q = new SpscArrayQueue<Integer>(16);
@@ -384,7 +384,7 @@ public void run() {
384384

385385
@Test(expected = UnsupportedOperationException.class)
386386
public void testSpscLinkedQueueIterator() {
387-
if (!UnsafeAccess.isUnsafeAvailable()) {
387+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
388388
return;
389389
}
390390
SpscLinkedQueue<Integer> q = new SpscLinkedQueue<Integer>();
@@ -393,7 +393,7 @@ public void testSpscLinkedQueueIterator() {
393393

394394
@Test(expected = NullPointerException.class)
395395
public void testSpscLinkedQueueNull() {
396-
if (!UnsafeAccess.isUnsafeAvailable()) {
396+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
397397
return;
398398
}
399399
SpscLinkedQueue<Integer> q = new SpscLinkedQueue<Integer>();
@@ -402,7 +402,7 @@ public void testSpscLinkedQueueNull() {
402402

403403
@Test
404404
public void testSpscLinkedQueueOfferPoll() {
405-
if (!UnsafeAccess.isUnsafeAvailable()) {
405+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
406406
return;
407407
}
408408
SpscLinkedQueue<Integer> q = new SpscLinkedQueue<Integer>();
@@ -412,7 +412,7 @@ public void testSpscLinkedQueueOfferPoll() {
412412

413413
@Test(timeout = 2000)
414414
public void testSpscLinkedQueuePipelined() throws InterruptedException {
415-
if (!UnsafeAccess.isUnsafeAvailable()) {
415+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
416416
return;
417417
}
418418
final SpscLinkedQueue<Integer> q = new SpscLinkedQueue<Integer>();
@@ -442,7 +442,7 @@ public void run() {
442442

443443
@Test
444444
public void testSpscOfferUpToCapacity() {
445-
if (!UnsafeAccess.isUnsafeAvailable()) {
445+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
446446
return;
447447
}
448448
int n = 128;
@@ -455,7 +455,7 @@ public void testSpscOfferUpToCapacity() {
455455

456456
@Test(expected = InternalError.class)
457457
public void testUnsafeAccessAddressOf() {
458-
if (!UnsafeAccess.isUnsafeAvailable()) {
458+
if (!UnsafeAccess.IS_UNSAFE_AVAILABLE) {
459459
return;
460460
}
461461
UnsafeAccess.addressOf(Object.class, "field");

0 commit comments

Comments
 (0)