Skip to content

Commit 6de5c6f

Browse files
authored
1.x: Completable.mergeDelayError check unsafe availability (ReactiveX#4941)
1 parent 4406bcb commit 6de5c6f

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

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

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@
2121

2222
import rx.*;
2323
import rx.Completable.OnSubscribe;
24-
import rx.internal.util.unsafe.MpscLinkedQueue;
24+
import rx.internal.util.atomic.MpscLinkedAtomicQueue;
25+
import rx.internal.util.unsafe.*;
2526
import rx.subscriptions.CompositeSubscription;
2627

2728
public final class CompletableOnSubscribeMergeDelayErrorIterable implements OnSubscribe {
@@ -53,7 +54,13 @@ public void call(final CompletableSubscriber s) {
5354

5455
final AtomicInteger wip = new AtomicInteger(1);
5556

56-
final Queue<Throwable> queue = new MpscLinkedQueue<Throwable>();
57+
final Queue<Throwable> queue;
58+
59+
if (UnsafeAccess.isUnsafeAvailable()) {
60+
queue = new MpscLinkedQueue<Throwable>();
61+
} else {
62+
queue = new MpscLinkedAtomicQueue<Throwable>();
63+
}
5764

5865
for (;;) {
5966
if (set.isUnsubscribed()) {

0 commit comments

Comments
 (0)