0001 // 0002 // ScheduledDisposable.swift 0003 // RxSwift 0004 // 0005 // Created by Krunoslav Zaher on 6/13/15. 0006 // Copyright © 2015 Krunoslav Zaher. All rights reserved. 0007 // 0008 0009 import Foundation 0010 0011 private let disposeScheduledDisposable: ScheduledDisposable -> Disposable = { sd in 0012 sd.disposeInner() 0013 return NopDisposable.instance 0014 } 0015 0016 /** 0017 Represents a disposable resource whose disposal invocation will be scheduled on the specified scheduler. 0018 */ 0019 public class ScheduledDisposable
ScheduledDisposable.swift:51 scheduler.schedule(self, action: disposeScheduledDisposable): Cancelable { 0020 public let scheduler
ScheduledDisposable.swift:11 private let disposeScheduledDisposable: ScheduledDisposable -> Disposable = { sd inSubscribeOn.swift:38 disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription): ImmediateSchedulerType 0021 0022 private var _disposed
ScheduledDisposable.swift:43 self.scheduler = schedulerScheduledDisposable.swift:51 scheduler.schedule(self, action: disposeScheduledDisposable): AtomicInt = 0 0023 0024 // state 0025 private var _disposable
ScheduledDisposable.swift:32 return _disposed == 1ScheduledDisposable.swift:55 if AtomicCompareAndSwap(0, 1, &_disposed) {: Disposable? 0026 0027 /** 0028 - returns: Was resource disposed. 0029 */ 0030 public var disposed: Bool { 0031 get { 0032 return _disposed == 1 0033 } 0034 } 0035 0036 /** 0037 Initializes a new instance of the `ScheduledDisposable` that uses a `scheduler` on which to dispose the `disposable`. 0038 0039 - parameter scheduler: Scheduler where the disposable resource will be disposed on. 0040 - parameter disposable: Disposable resource to dispose on the given scheduler. 0041 */ 0042 init
ScheduledDisposable.swift:44 _disposable = disposableScheduledDisposable.swift:56 _disposable!.dispose()ScheduledDisposable.swift:57 _disposable = nil(scheduler: ImmediateSchedulerType, disposable: Disposable) { 0043 self.scheduler = scheduler 0044 _disposable = disposable 0045 } 0046 0047 /** 0048 Disposes the wrapped disposable on the provided scheduler. 0049 */ 0050 public func dispose() { 0051 scheduler.schedule(self, action: disposeScheduledDisposable) 0052 } 0053 0054 func disposeInner
SubscribeOn.swift:38 disposeEverything.disposable = ScheduledDisposable(scheduler: self.parent.scheduler, disposable: subscription)() { 0055 if AtomicCompareAndSwap(0, 1, &_disposed) { 0056 _disposable!.dispose() 0057 _disposable = nil 0058 } 0059 } 0060 } 0061
ScheduledDisposable.swift:12 sd.disposeInner()