diff --git a/Sources/Disposable.swift b/Sources/Disposable.swift index 73220dbe2..f364ab895 100644 --- a/Sources/Disposable.swift +++ b/Sources/Disposable.swift @@ -350,10 +350,10 @@ public final class SerialDisposable: Disposable { } set(disposable) { - _inner.swap(disposable)?.dispose() - - if let disposable = disposable, isDisposed { - disposable.dispose() + if isDisposed { + disposable?.dispose() + } else { + _inner.swap(disposable)?.dispose() } } }