0001    //
0002    //  BinaryDisposable.swift
0003    //  RxSwift
0004    //
0005    //  Created by Krunoslav Zaher on 6/12/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    /**
0012    Represents two disposable resources that are disposed together.
0013    */
0014    public final class BinaryDisposable
Multicast.swift:33
            return BinaryDisposable(subscription, connection)
Observable+Extensions.swift:62
        return BinaryDisposable(
Skip.swift:108
        return BinaryDisposable(disposeTimer, disposeSubscription)
StableCompositeDisposable.swift:13
        return BinaryDisposable(disposable1, disposable2)
Take.swift:122
        return BinaryDisposable(disposeTimer, disposeSubscription)
: DisposeBase, Cancelable { 0015 0016 private var _disposed
BinaryDisposable.swift:27
            return _disposed > 0
BinaryDisposable.swift:49
        if AtomicCompareAndSwap(0, 1, &_disposed) {
: AtomicInt = 0 0017 0018 // state 0019 private var _disposable1
BinaryDisposable.swift:38
        _disposable1 = disposable1
BinaryDisposable.swift:50
            _disposable1?.dispose()
BinaryDisposable.swift:52
            _disposable1 = nil
: Disposable? 0020 private var _disposable2
BinaryDisposable.swift:39
        _disposable2 = disposable2
BinaryDisposable.swift:51
            _disposable2?.dispose()
BinaryDisposable.swift:53
            _disposable2 = nil
: Disposable? 0021 0022 /** 0023 - returns: Was resource disposed. 0024 */ 0025 public var disposed: Bool { 0026 get { 0027 return _disposed > 0 0028 } 0029 } 0030 0031 /** 0032 Constructs new binary disposable from two disposables. 0033 0034 - parameter disposable1: First disposable 0035 - parameter disposable2: Second disposable 0036 */ 0037 init
Multicast.swift:33
            return BinaryDisposable(subscription, connection)
Observable+Extensions.swift:62
        return BinaryDisposable(
Skip.swift:108
        return BinaryDisposable(disposeTimer, disposeSubscription)
StableCompositeDisposable.swift:13
        return BinaryDisposable(disposable1, disposable2)
Take.swift:122
        return BinaryDisposable(disposeTimer, disposeSubscription)
(_ disposable1: Disposable, _ disposable2: Disposable) { 0038 _disposable1 = disposable1 0039 _disposable2 = disposable2 0040 super.init() 0041 } 0042 0043 /** 0044 Calls the disposal action if and only if the current instance hasn't been disposed yet. 0045 0046 After invoking disposal action, disposal action will be dereferenced. 0047 */ 0048 public func dispose() { 0049 if AtomicCompareAndSwap(0, 1, &_disposed) { 0050 _disposable1?.dispose() 0051 _disposable2?.dispose() 0052 _disposable1 = nil 0053 _disposable2 = nil 0054 } 0055 } 0056 } 0057