DisposableAsyncSlot.SwapAsync(IAsyncDisposable?, IAsyncDisposable?) method¶
Defined in
Type: DisposableAsyncSlot
Namespace: ReactiveUI.Extensions.Async.Disposables
Assembly: ReactiveUI.Extensions.dll
Applies to
net10.0, net10.0-browserwasm1.0, net10.0-desktop1.0, net9.0, net9.0-browserwasm1.0, net9.0-desktop1.0, net8.0, net8.0-ios17.5, net8.0-maccatalyst17.5, net8.0-macos14.2, net8.0-macos14.5, net8.0-tvos17.2, netstandard2.1, net462, net481
Attributes: [DebuggerStepThrough] [ExcludeFromCodeCoverage]
public static ValueTask SwapAsync(ref IAsyncDisposable? slot, IAsyncDisposable? value)
Summary: Swaps the slot's current contents with value and asynchronously
disposes the previous occupant. Equivalent to
SetDisposableAsync, but operates on a caller-owned field
so no wrapper instance is allocated.
Parameters
| Name | Type | Description |
|---|---|---|
ref slot | IAsyncDisposable? | Reference to the caller-owned IAsyncDisposable field. |
value | IAsyncDisposable? | The new value to store, or null to clear the slot. |
Returns: ValueTask -- A ValueTask that completes once the previous occupant (if any) has been disposed.
Remarks
The compare-exchange retry (the loop back-edge) is only taken when a concurrent writer wins the race, so it is unreachable by single-threaded tests; excluded from coverage accordingly.