From cd9f7654d55638784d8603333ff4e1c47a899fab Mon Sep 17 00:00:00 2001 From: Krunoslav Zaher Date: Sun, 1 Nov 2015 22:12:52 +0100 Subject: [PATCH] Sink modifications. --- .../Observables/Implementations/Sink.swift | 25 ++++++------------- RxTests/PerformanceTests/main.swift | 10 ++++---- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/RxSwift/Observables/Implementations/Sink.swift b/RxSwift/Observables/Implementations/Sink.swift index e6ce7278..43527b69 100644 --- a/RxSwift/Observables/Implementations/Sink.swift +++ b/RxSwift/Observables/Implementations/Sink.swift @@ -9,18 +9,20 @@ import Foundation class Sink : SingleAssignmentDisposable { - private var _lock = SpinLock() - // state - private var _observer: O? + private var _observer: O var observer: O? { get { - _lock.lock(); defer { _lock.unlock() } + //_lock.lock(); defer { _lock.unlock() } return _observer } } - + + func forward(event: Event) { + _observer.on(event) + } + init(observer: O) { #if TRACE_RESOURCES OSAtomicIncrement32(&resourceCount) @@ -28,19 +30,6 @@ class Sink : SingleAssignmentDisposable { _observer = observer } - private func _disposeObserver() { - _lock.lock(); defer { _lock.unlock() } - - _observer = nil - } - - override func dispose() { - if !disposed { - _disposeObserver() - } - super.dispose() - } - deinit { #if TRACE_RESOURCES OSAtomicDecrement32(&resourceCount) diff --git a/RxTests/PerformanceTests/main.swift b/RxTests/PerformanceTests/main.swift index 1d80a525..f2a0b7f1 100644 --- a/RxTests/PerformanceTests/main.swift +++ b/RxTests/PerformanceTests/main.swift @@ -24,14 +24,14 @@ compareTwoImplementations(benchmarkTime: true, first: { //let a = just(1) //combineLatest(a, - publishSubject + publishSubject//.asDriver(onErrorJustReturn: -1) .shareReplay(1) .map { $0 } - .filter { _ in true }// ){ x, _ in x } - //.map { $0 } - //.flatMap { just($0) } + .filter { _ in true }//){ x, _ in x } + .map { $0 } + .flatMap { just($0) } .subscribeNext { _ in - + }