 
     func _synchronized_on(_ event: Event<E>) {
         _lock.lock(); defer { _lock.unlock() }
-        if  _isDisposed || _stopped {
+        if  _isDisposed || _isStopped {
             return
         }
 

            return Disposables.create()
        }

        let key = _observers.insert(observer.asObserver())

        return SubscriptionDisposable(owner: self, key: key)
    }

        
        case .error:
            _stoppedEvent = event

            let observers = _observers
            _observers.removeAll()
            _lock.unlock()

            dispatch(observers, event)
        
        case .completed:
            _stoppedEvent = event

            let observers = _observers
            _observers.removeAll()
            _lock.unlock()

            if let lastValue = _lastValue {
                dispatch(observers, .next(lastValue))
            }

            dispatch(observers, event)
        }
    }

