0001 // 0002 // AnonymousDisposable.swift 0003 // Rx 0004 // 0005 // Created by Krunoslav Zaher on 2/15/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 /** 0012 Represents an Action-based disposable. 0013 0014 When dispose method is called, disposal action will be dereferenced. 0015 */ 0016 public final class AnonymousDisposable: DisposeBase, Cancelable { 0017 public typealias DisposeAction
ConcurrentDispatchQueueScheduler.swift:109 compositeDisposable.addDisposable(AnonymousDisposable {ConcurrentDispatchQueueScheduler.swift:136 let cancel = AnonymousDisposable {ImmediateSchedulerType.swift:38 return AnonymousDisposable {Observable+Extensions.swift:44 disposable = AnonymousDisposable(disposed)OperationQueueScheduler.swift:52 compositeDisposable.addDisposable(AnonymousDisposable {RefCount.swift:37 return AnonymousDisposable {SchedulerType.swift:76 return AnonymousDisposable {SerialDispatchQueueScheduler.swift:146 compositeDisposable.addDisposable(AnonymousDisposable {SerialDispatchQueueScheduler.swift:173 let cancel = AnonymousDisposable {= () -> Void 0018 0019 private var _disposed
AnonymousDisposable.swift:20 private var _disposeAction: DisposeAction?AnonymousDisposable.swift:36 public init(_ disposeAction: DisposeAction) {: AtomicInt = 0 0020 private var _disposeAction
AnonymousDisposable.swift:27 return _disposed == 1AnonymousDisposable.swift:47 if AtomicCompareAndSwap(0, 1, &_disposed) {AnonymousDisposable.swift:48 assert(_disposed == 1): DisposeAction? 0021 0022 /** 0023 - returns: Was resource disposed. 0024 */ 0025 public var disposed
AnonymousDisposable.swift:37 _disposeAction = disposeActionAnonymousDisposable.swift:50 if let action = _disposeAction {AnonymousDisposable.swift:51 _disposeAction = nil: Bool { 0026 get { 0027 return _disposed == 1 0028 } 0029 } 0030 0031 /** 0032 Constructs a new disposable with the given action used for disposal. 0033 0034 - parameter disposeAction: Disposal action which will be run upon calling `dispose`. 0035 */ 0036 public init
ConcurrentDispatchQueueScheduler.swift:140 if cancel.disposed {SerialDispatchQueueScheduler.swift:177 if cancel.disposed {(_ disposeAction: DisposeAction) { 0037 _disposeAction = disposeAction 0038 super.init() 0039 } 0040 0041 /** 0042 Calls the disposal action if and only if the current instance hasn't been disposed yet. 0043 0044 After invoking disposal action, disposal action will be dereferenced. 0045 */ 0046 public func dispose() { 0047 if AtomicCompareAndSwap(0, 1, &_disposed) { 0048 assert(_disposed == 1) 0049 0050 if let action = _disposeAction { 0051 _disposeAction = nil 0052 action() 0053 } 0054 } 0055 } 0056 } 0057
ConcurrentDispatchQueueScheduler.swift:109 compositeDisposable.addDisposable(AnonymousDisposable {ConcurrentDispatchQueueScheduler.swift:136 let cancel = AnonymousDisposable {ImmediateSchedulerType.swift:38 return AnonymousDisposable {Observable+Extensions.swift:44 disposable = AnonymousDisposable(disposed)OperationQueueScheduler.swift:52 compositeDisposable.addDisposable(AnonymousDisposable {RefCount.swift:37 return AnonymousDisposable {SchedulerType.swift:76 return AnonymousDisposable {SerialDispatchQueueScheduler.swift:146 compositeDisposable.addDisposable(AnonymousDisposable {SerialDispatchQueueScheduler.swift:173 let cancel = AnonymousDisposable {