 			
 			for i in 0 ..< flow.count {
 				let index = i
-				var complete = false
 				let disposable = flow[index].subscribe { event in
-					
 					lock.lock()
 					defer { lock.unlock() }
 					

							subscriptions[current] = nil
							current += 1
						}
						observer.onNext(element)
						
					case .completed:
						complete = true
						if index >= current {
							if (initialized) {
								subscriptions[index]?.dispose()

		
		return Observable<T>.create { observer in
			var current = 0, initialized = false
			var subscriptions: [SerialDisposable?] = flow.map { _ in SerialDisposable() }

			let lock = NSRecursiveLock()
			lock.lock()
