|
|
@@ -9,7 +9,7 @@ namespace System.Reactive.Disposables
|
|
|
/// </summary>
|
|
|
public sealed class SerialDisposable : ICancelable
|
|
|
{
|
|
|
- private IDisposable? _current;
|
|
|
+ private SerialDisposableValue _current;
|
|
|
|
|
|
/// <summary>
|
|
|
/// Initializes a new instance of the <see cref="T:System.Reactive.Disposables.SerialDisposable"/> class.
|
|
|
@@ -21,7 +21,7 @@ namespace System.Reactive.Disposables
|
|
|
/// <summary>
|
|
|
/// Gets a value that indicates whether the object is disposed.
|
|
|
/// </summary>
|
|
|
- public bool IsDisposed => Disposables.Disposable.GetIsDisposed(ref _current);
|
|
|
+ public bool IsDisposed => _current.IsDisposed;
|
|
|
|
|
|
/// <summary>
|
|
|
/// Gets or sets the underlying disposable.
|
|
|
@@ -29,8 +29,8 @@ namespace System.Reactive.Disposables
|
|
|
/// <remarks>If the SerialDisposable has already been disposed, assignment to this property causes immediate disposal of the given disposable object. Assigning this property disposes the previous disposable object.</remarks>
|
|
|
public IDisposable? Disposable
|
|
|
{
|
|
|
- get => Disposables.Disposable.GetValue(ref _current);
|
|
|
- set => Disposables.Disposable.TrySetSerial(ref _current, value);
|
|
|
+ get => _current.Disposable;
|
|
|
+ set => _current.Disposable = value;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -38,7 +38,7 @@ namespace System.Reactive.Disposables
|
|
|
/// </summary>
|
|
|
public void Dispose()
|
|
|
{
|
|
|
- Disposables.Disposable.Dispose(ref _current);
|
|
|
+ _current.Dispose();
|
|
|
}
|
|
|
}
|
|
|
}
|