discord-jadx/app/src/main/java/rx/internal/util/SubscriptionList.java

81 lines
2.2 KiB
Java

package rx.internal.util;
import c.q.a.k.a;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import rx.Subscription;
public final class SubscriptionList implements Subscription {
public List<Subscription> i;
public volatile boolean j;
public SubscriptionList() {
}
public SubscriptionList(Subscription subscription) {
LinkedList linkedList = new LinkedList();
this.i = linkedList;
linkedList.add(subscription);
}
public SubscriptionList(Subscription... subscriptionArr) {
this.i = new LinkedList(Arrays.asList(subscriptionArr));
}
public void a(Subscription subscription) {
if (!subscription.isUnsubscribed()) {
if (!this.j) {
synchronized (this) {
if (!this.j) {
List list = this.i;
if (list == null) {
list = new LinkedList();
this.i = list;
}
list.add(subscription);
return;
}
}
}
subscription.unsubscribe();
}
}
@Override // rx.Subscription
public boolean isUnsubscribed() {
return this.j;
}
@Override // rx.Subscription
public void unsubscribe() {
List<Subscription> list;
ArrayList arrayList;
if (!this.j) {
synchronized (this) {
if (!this.j) {
this.j = true;
list = this.i;
arrayList = null;
this.i = null;
} else {
return;
}
}
if (list != null) {
for (Subscription subscription : list) {
try {
subscription.unsubscribe();
} catch (Throwable th) {
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(th);
}
}
a.Z(arrayList);
}
}
}
}