39 lines
1.0 KiB
Java
39 lines
1.0 KiB
Java
package rx.subscriptions;
|
|
|
|
import j0.l.d.a;
|
|
import j0.l.d.b;
|
|
import rx.Subscription;
|
|
public final class SerialSubscription implements Subscription {
|
|
public final a i = new a();
|
|
|
|
public void a(Subscription subscription) {
|
|
Subscription subscription2;
|
|
if (subscription != null) {
|
|
a aVar = this.i;
|
|
do {
|
|
subscription2 = aVar.get();
|
|
if (subscription2 == b.INSTANCE) {
|
|
subscription.unsubscribe();
|
|
return;
|
|
}
|
|
} while (!aVar.compareAndSet(subscription2, subscription));
|
|
if (subscription2 != null) {
|
|
subscription2.unsubscribe();
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
throw new IllegalArgumentException("Subscription can not be null");
|
|
}
|
|
|
|
@Override // rx.Subscription
|
|
public boolean isUnsubscribed() {
|
|
return this.i.isUnsubscribed();
|
|
}
|
|
|
|
@Override // rx.Subscription
|
|
public void unsubscribe() {
|
|
this.i.unsubscribe();
|
|
}
|
|
}
|