 
 		set(disposable) {
 			_inner.swap(disposable)?.dispose()
+
 			if let disposable = disposable, isDisposed {
 				disposable.dispose()
 			}

	}

	public func dispose() {
		if state.tryDispose(), let disposables = disposables.swap(nil) {
			for disposable in disposables {
				disposable.dispose()
			}
		}
	}


		}

		func dispose() {
			guard state.tryDispose() else { return }
			action?()
			action = nil
		}
	}

