jimu-decompiled/sources/io/reactivex/internal/operators/observable/ObservableRange.java
2025-05-13 19:24:51 +02:00

88 lines
2.4 KiB
Java

package io.reactivex.internal.operators.observable;
import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.internal.observers.BasicIntQueueDisposable;
/* loaded from: classes2.dex */
public final class ObservableRange extends Observable<Integer> {
private final int a;
private final long b;
static final class RangeDisposable extends BasicIntQueueDisposable<Integer> {
final Observer<? super Integer> a;
final long b;
long c;
boolean d;
RangeDisposable(Observer<? super Integer> observer, long j, long j2) {
this.a = observer;
this.c = j;
this.b = j2;
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public void clear() {
this.c = this.b;
lazySet(1);
}
@Override // io.reactivex.disposables.Disposable
public void dispose() {
set(1);
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public boolean isEmpty() {
return this.c == this.b;
}
@Override // io.reactivex.internal.fuseable.QueueFuseable
public int requestFusion(int i) {
if ((i & 1) == 0) {
return 0;
}
this.d = true;
return 1;
}
void run() {
if (this.d) {
return;
}
Observer<? super Integer> observer = this.a;
long j = this.b;
for (long j2 = this.c; j2 != j && get() == 0; j2++) {
observer.onNext(Integer.valueOf((int) j2));
}
if (get() == 0) {
lazySet(1);
observer.onComplete();
}
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public Integer poll() throws Exception {
long j = this.c;
if (j != this.b) {
this.c = 1 + j;
return Integer.valueOf((int) j);
}
lazySet(1);
return null;
}
}
public ObservableRange(int i, int i2) {
this.a = i;
this.b = i + i2;
}
@Override // io.reactivex.Observable
protected void subscribeActual(Observer<? super Integer> observer) {
RangeDisposable rangeDisposable = new RangeDisposable(observer, this.a, this.b);
observer.onSubscribe(rangeDisposable);
rangeDisposable.run();
}
}