55
66import javax .annotation .concurrent .ThreadSafe ;
77
8- import org .rx .reactive .IDisposable ;
9-
8+ import org .rx .reactive .Subscription ;
109
1110/**
12- * Thread-safe wrapper around WatchableSubscription that ensures unsubscribe can be called only once.
11+ * Thread-safe wrapper around ObservableSubscription that ensures unsubscribe can be called only once.
1312 */
1413@ ThreadSafe
15- /* package */ class AtomicWatchableSubscription implements IDisposable {
14+ /* package */ final class AtomicObservableSubscription implements Subscription {
1615
17- private AtomicReference <IDisposable > actualSubscription = new AtomicReference <IDisposable >();
16+ private AtomicReference <Subscription > actualSubscription = new AtomicReference <Subscription >();
1817 private AtomicBoolean unsubscribed = new AtomicBoolean (false );
1918
20- public AtomicWatchableSubscription () {
19+ public AtomicObservableSubscription () {
2120
2221 }
2322
24- public AtomicWatchableSubscription ( IDisposable actualSubscription ) {
23+ public AtomicObservableSubscription ( Subscription actualSubscription ) {
2524 this .actualSubscription .set (actualSubscription );
2625 }
2726
@@ -32,7 +31,7 @@ public AtomicWatchableSubscription(IDisposable actualSubscription) {
3231 * @throws IllegalStateException
3332 * if trying to set more than once (or use this method after setting via constructor)
3433 */
35- public AtomicWatchableSubscription setActual (IDisposable actualSubscription ) {
34+ public AtomicObservableSubscription setActual (Subscription actualSubscription ) {
3635 if (!this .actualSubscription .compareAndSet (null , actualSubscription )) {
3736 throw new IllegalStateException ("Can not set subscription more than once." );
3837 }
@@ -42,7 +41,7 @@ public AtomicWatchableSubscription setActual(IDisposable actualSubscription) {
4241 @ Override
4342 public void unsubscribe () {
4443 // get the real thing and set to null in an atomic operation so we will only ever call unsubscribe once
45- IDisposable actual = actualSubscription .getAndSet (null );
44+ Subscription actual = actualSubscription .getAndSet (null );
4645 // if it's not null we will unsubscribe
4746 if (actual != null ) {
4847 actual .unsubscribe ();
0 commit comments