0001    //
0002    //  Zip.swift
0003    //  RxSwift
0004    //
0005    //  Created by Krunoslav Zaher on 5/23/15.
0006    //  Copyright © 2015 Krunoslav Zaher. All rights reserved.
0007    //
0008    
0009    import Foundation
0010    
0011    protocol ZipSinkProtocol
Zip.swift:18
class ZipSink<O: ObserverType> : Sink<O>, ZipSinkProtocol {
Zip.swift:112
    private var _parent: ZipSinkProtocol?
Zip.swift:121
    init(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) {
: class 0012 { 0013 func next
Zip.swift:149
                parent.next(_index)
(index: Int) 0014 func fail
Zip.swift:151
                parent.fail(error)
(error: ErrorType) 0015 func done
Zip.swift:153
                parent.done(_index)
(index: Int) 0016 } 0017 0018 class ZipSink
Zip+arity.swift:36
class ZipSink2_<E1, E2, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:129
class ZipSink3_<E1, E2, E3, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:230
class ZipSink4_<E1, E2, E3, E4, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:339
class ZipSink5_<E1, E2, E3, E4, E5, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:456
class ZipSink6_<E1, E2, E3, E4, E5, E6, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:581
class ZipSink7_<E1, E2, E3, E4, E5, E6, E7, O: ObserverType> : ZipSink<O> {
Zip+arity.swift:714
class ZipSink8_<E1, E2, E3, E4, E5, E6, E7, E8, O: ObserverType> : ZipSink<O> {
<O
Zip.swift:18
class ZipSink<O: ObserverType> : Sink<O>, ZipSinkProtocol {
Zip.swift:19
    typealias Element = O.E
Zip.swift:28
    init(arity: Int, observer: O) {
: ObserverType> : Sink<O>, ZipSinkProtocol { 0019 typealias Element
Zip.swift:35
    func getResult() throws -> Element {
= O.E 0020 0021 let _arity
Zip.swift:30
        _arity = arity
Zip.swift:46
        for i in 0 ..< _arity {
: Int 0022 0023 let _lock
Zip+arity.swift:66
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:67
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:162
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:163
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:164
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:266
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:267
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:268
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:269
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:378
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:379
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:380
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:381
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:382
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:498
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:499
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:500
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:501
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:502
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:503
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:626
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:627
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:628
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:629
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:630
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:631
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:632
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:762
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:763
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:764
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:765
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:766
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:767
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:768
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:769
        let observer8 = ZipObserver(lock: _lock, parent: self, index: 7, setNextValue: { self._values8.enqueue($0) }, this: subscription8)
= NSRecursiveLock() 0024 0025 // state 0026 private var _isDone
Zip.swift:29
        _isDone = [Bool](count: arity, repeatedValue: false)
Zip.swift:66
            let arity = _isDone.count
Zip.swift:68
                if i != index && !_isDone[i] {
Zip.swift:87
        _isDone[index] = true
Zip.swift:91
        for done in _isDone {
: [Bool] 0027 0028 init
Zip+arity.swift:47
        super.init(arity: 2, observer: observer)
Zip+arity.swift:141
        super.init(arity: 3, observer: observer)
Zip+arity.swift:243
        super.init(arity: 4, observer: observer)
Zip+arity.swift:353
        super.init(arity: 5, observer: observer)
Zip+arity.swift:471
        super.init(arity: 6, observer: observer)
Zip+arity.swift:597
        super.init(arity: 7, observer: observer)
Zip+arity.swift:731
        super.init(arity: 8, observer: observer)
(arity: Int, observer: O) { 0029 _isDone = [Bool](count: arity, repeatedValue: false) 0030 _arity = arity 0031 0032 super.init(observer: observer) 0033 } 0034 0035 func getResult
Zip.swift:55
                let result = try getResult()
() throws -> Element { 0036 abstractMethod() 0037 } 0038 0039 func hasElements
Zip.swift:47
            if !hasElements(i) {
(index: Int) -> Bool { 0040 abstractMethod() 0041 } 0042 0043 func next(index: Int) { 0044 var hasValueAll = true 0045 0046 for i in 0 ..< _arity { 0047 if !hasElements(i) { 0048 hasValueAll = false 0049 break 0050 } 0051 } 0052 0053 if hasValueAll { 0054 do { 0055 let result = try getResult() 0056 self.forwardOn(.Next(result)) 0057 } 0058 catch let e { 0059 self.forwardOn(.Error(e)) 0060 dispose() 0061 } 0062 } 0063 else { 0064 var allOthersDone = true 0065 0066 let arity = _isDone.count 0067 for i in 0 ..< arity { 0068 if i != index && !_isDone[i] { 0069 allOthersDone = false 0070 break 0071 } 0072 } 0073 0074 if allOthersDone { 0075 forwardOn(.Completed) 0076 self.dispose() 0077 } 0078 } 0079 } 0080 0081 func fail(error: ErrorType) { 0082 forwardOn(.Error(error)) 0083 dispose() 0084 } 0085 0086 func done(index: Int) { 0087 _isDone[index] = true 0088 0089 var allDone = true 0090 0091 for done in _isDone { 0092 if !done { 0093 allDone = false 0094 break 0095 } 0096 } 0097 0098 if allDone { 0099 forwardOn(.Completed) 0100 dispose() 0101 } 0102 } 0103 } 0104 0105 class ZipObserver
Zip+arity.swift:66
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:67
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:162
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:163
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:164
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:266
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:267
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:268
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:269
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:378
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:379
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:380
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:381
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:382
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:498
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:499
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:500
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:501
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:502
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:503
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:626
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:627
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:628
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:629
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:630
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:631
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:632
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:762
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:763
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:764
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:765
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:766
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:767
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:768
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:769
        let observer8 = ZipObserver(lock: _lock, parent: self, index: 7, setNextValue: { self._values8.enqueue($0) }, this: subscription8)
<ElementType
Zip.swift:109
    typealias E = ElementType
Zip.swift:110
    typealias ValueSetter = (ElementType) -> ()
> 0106 : ObserverType 0107 , LockOwnerType 0108 , SynchronizedOnType { 0109 typealias E
Zip.swift:129
    func on(event: Event<E>) {
Zip.swift:133
    func _synchronized_on(event: Event<E>) {
= ElementType 0110 typealias ValueSetter
Zip.swift:119
    private let _setNextValue: ValueSetter
Zip.swift:121
    init(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) {
= (ElementType) -> () 0111 0112 private var _parent
Zip.swift:123
        _parent = parent
Zip.swift:134
        if let _ = _parent {
Zip.swift:145
        if let parent = _parent {
: ZipSinkProtocol? 0113 0114 let _lock
Zip.swift:122
        _lock = lock
: NSRecursiveLock 0115 0116 // state 0117 private let _index
Zip.swift:124
        _index = index
Zip.swift:149
                parent.next(_index)
Zip.swift:153
                parent.done(_index)
: Int 0118 private let _this
Zip.swift:125
        _this = this
Zip.swift:139
                _this.dispose()
Zip.swift:141
                _this.dispose()
: Disposable 0119 private let _setNextValue
Zip.swift:126
        _setNextValue = setNextValue
Zip.swift:148
                _setNextValue(value)
: ValueSetter 0120 0121 init
Zip+arity.swift:66
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:67
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:162
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:163
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:164
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:266
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:267
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:268
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:269
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:378
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:379
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:380
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:381
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:382
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:498
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:499
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:500
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:501
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:502
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:503
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:626
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:627
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:628
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:629
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:630
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:631
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:632
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:762
        let observer1 = ZipObserver(lock: _lock, parent: self, index: 0, setNextValue: { self._values1.enqueue($0) }, this: subscription1)
Zip+arity.swift:763
        let observer2 = ZipObserver(lock: _lock, parent: self, index: 1, setNextValue: { self._values2.enqueue($0) }, this: subscription2)
Zip+arity.swift:764
        let observer3 = ZipObserver(lock: _lock, parent: self, index: 2, setNextValue: { self._values3.enqueue($0) }, this: subscription3)
Zip+arity.swift:765
        let observer4 = ZipObserver(lock: _lock, parent: self, index: 3, setNextValue: { self._values4.enqueue($0) }, this: subscription4)
Zip+arity.swift:766
        let observer5 = ZipObserver(lock: _lock, parent: self, index: 4, setNextValue: { self._values5.enqueue($0) }, this: subscription5)
Zip+arity.swift:767
        let observer6 = ZipObserver(lock: _lock, parent: self, index: 5, setNextValue: { self._values6.enqueue($0) }, this: subscription6)
Zip+arity.swift:768
        let observer7 = ZipObserver(lock: _lock, parent: self, index: 6, setNextValue: { self._values7.enqueue($0) }, this: subscription7)
Zip+arity.swift:769
        let observer8 = ZipObserver(lock: _lock, parent: self, index: 7, setNextValue: { self._values8.enqueue($0) }, this: subscription8)
(lock: NSRecursiveLock, parent: ZipSinkProtocol, index: Int, setNextValue: ValueSetter, this: Disposable) { 0122 _lock = lock 0123 _parent = parent 0124 _index = index 0125 _this = this 0126 _setNextValue = setNextValue 0127 } 0128 0129 func on(event: Event<E>) { 0130 synchronizedOn(event) 0131 } 0132 0133 func _synchronized_on(event: Event<E>) { 0134 if let _ = _parent { 0135 switch event { 0136 case .Next(_): 0137 break 0138 case .Error(_): 0139 _this.dispose() 0140 case .Completed: 0141 _this.dispose() 0142 } 0143 } 0144 0145 if let parent = _parent { 0146 switch event { 0147 case .Next(let value): 0148 _setNextValue(value) 0149 parent.next(_index) 0150 case .Error(let error): 0151 parent.fail(error) 0152 case .Completed: 0153 parent.done(_index) 0154 } 0155 } 0156 } 0157 } 0158