AsyncSerialGate class¶
Defined in
Namespace: ReactiveUI.Primitives.Async.Advanced
Assembly: ReactiveUI.Primitives.Async.Core.dll
Full name: ReactiveUI.Primitives.Async.Advanced.AsyncSerialGate
Modifiers: public sealed
Summary¶
Asynchronous mutual-exclusion primitive that serializes critical sections in the async pipeline. Uncontended acquire is a pure CompareExchange (no SemaphoreSlim touch); the contended path waits on a signal-only semaphore and retries the CAS after each signal. Same-thread reentry is granted via the owner-thread-id and a recursion counter.
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
Class hierarchy
classDiagram
class AsyncSerialGate
class IDisposable {
<>
}
IDisposable <|.. AsyncSerialGate
Implements: IDisposable
Constructors¶
| Name | Summary |
|---|---|
| .ctor |
Methods¶
| Name | Summary |
|---|---|
| EnterAsync | Asynchronously acquires the gate, returning a [Lease](# that releases it on disposal. |
| Dispose |