AsyncReaderWriterLock Class

 

Microsoft internal only. A non-blocking lock that allows concurrent access, exclusive access, or concurrent access that can be upgraded to exclusive access.

Namespace:   Microsoft.VisualStudio.Threading
Assembly:  Microsoft.VisualStudio.Threading (in Microsoft.VisualStudio.Threading.dll)


public class AsyncReaderWriterLock : IHangReportContributor

NameDescription
System_CAPS_pubmethodAsyncReaderWriterLock()

Microsoft internal only. Initializes a new instance of AsyncReaderWriterLock.

System_CAPS_pubmethodAsyncReaderWriterLock(Boolean)

Microsoft internal only. Initializes a new instance of syncReaderWriterLock, specifying whether to spend additional resources on diagnostic details.

NameDescription
System_CAPS_protpropertyAmbientLock

Microsoft internal only. Gets the lock held by the caller's execution context.

System_CAPS_protpropertyCaptureDiagnostics

Microsoft internal only. Determines whether additional resources should be spent to collect information that would be useful in diagnosing deadlocks.

System_CAPS_pubpropertyCompletion

Microsoft internal only. Gets a task whose completion signals that this lock will no longer issue locks.

System_CAPS_pubpropertyIsAnyLockHeld

Microsoft internal only. Determines whether any kind of lock is held by the caller and can be immediately used given the caller's context.

System_CAPS_pubpropertyIsAnyPassiveLockHeld

Microsoft internal only. Determines whether any kind of lock is held by the caller without regard to the lock compatibility of the caller's context.

System_CAPS_pubpropertyIsPassiveReadLockHeld

Determines whether a read lock is held by the caller without regard to the lock compatibility of the caller's context.

System_CAPS_pubpropertyIsPassiveUpgradeableReadLockHeld

Determines whether an upgradeable read lock is held by the caller without regard to the lock compatibility of the caller's context.

System_CAPS_pubpropertyIsPassiveWriteLockHeld

Determines whether a write lock is held by the caller without regard to the lock compatibility of the caller's context.

System_CAPS_pubpropertyIsReadLockHeld

Microsoft internal only. Determines whether the caller holds a read lock.

System_CAPS_pubpropertyIsUpgradeableReadLockHeld

Microsoft internal only. Determines whether the caller holds an upgradeable read lock.

System_CAPS_pubpropertyIsWriteLockHeld

Microsoft internal only. Determines whether the caller holds a write lock.

System_CAPS_protpropertySyncObject

Microsoft internal only. Gets the object used to synchronize access to the fields of this instance.

NameDescription
System_CAPS_pubmethodComplete()

Microsoft internal only. Causes new top-level lock requests to be rejected and the Completion task to transition to a completed state after any issued locks have been released.

System_CAPS_pubmethodEquals(Object)

(Inherited from Object.)

System_CAPS_protmethodFinalize()

(Inherited from Object.)

System_CAPS_protmethodGetAggregateLockFlags()

Microsoft internal only. Gets the aggregate of the lock flags for all nested locks.

System_CAPS_pubmethodGetHashCode()

(Inherited from Object.)

System_CAPS_pubmethodGetType()

(Inherited from Object.)

System_CAPS_pubmethodHideLocks()

Microsoft internal only. Prevents use or visibility of the caller's lock(s) until the returned value is disposed.

System_CAPS_protmethodLockStackContains(AsyncReaderWriterLock.LockFlags, AsyncReaderWriterLock.LockHandle)

Microsoft internal only. Checks whether the aggregated flags from all the locks in the lock stack satisfy the specified flag(s).

System_CAPS_protmethodMemberwiseClone()

(Inherited from Object.)

System_CAPS_protmethodOnBeforeExclusiveLockReleasedAsync()

Microsoft internal only. Occurs when the last write lock is about to be released.

System_CAPS_protmethodOnBeforeLockReleasedAsync(Boolean, AsyncReaderWriterLock.LockHandle)

Microsoft internal only. Occurs when any lock is being released.

System_CAPS_pubmethodOnBeforeWriteLockReleased(Func<Task>)

Microsoft internal only. Registers a callback that is invoked when the outermost write lock held by the caller is about to be released.

System_CAPS_protmethodOnCriticalFailure(Exception)

Occurs when the lock detects an internal error or illegal usage pattern that indicates a serious flaw that should be immediately reported to the application, while possibly also stopping the process to avoid hangs or data corruption.

System_CAPS_protmethodOnCriticalFailure(String)

Occurs when the lock detects an internal error or illegal usage pattern that indicates a serious flaw that should be immediately reported to the application, while possibly also stopping the process to avoid hangs or data corruption.

System_CAPS_protmethodOnExclusiveLockReleasedAsync()

Microsoft internal only. Occurs after an exclusive lock is released but before any other lock consumer has a chance to enter the lock.

System_CAPS_protmethodOnUpgradeableReadLockReleased()

Microsoft internal only. Occurs when a top-level upgradeable read lock is released, leaving no remaining (write) lock.

System_CAPS_pubmethodReadLockAsync(CancellationToken)

Microsoft internal only. Gets a read lock, asynchronously awaiting for the lock if it is not immediately available.

System_CAPS_pubmethodToString()

(Inherited from Object.)

System_CAPS_pubmethodUpgradeableReadLockAsync(CancellationToken)

Microsoft internal only. Gets a read lock, asynchronously awaiting for the lock if it is not immediately available.

System_CAPS_pubmethodUpgradeableReadLockAsync(AsyncReaderWriterLock.LockFlags, CancellationToken)

Microsoft internal only. Gets a read lock, asynchronously awaiting for the lock if it is not immediately available.

System_CAPS_pubmethodWriteLockAsync(CancellationToken)

Microsoft internal only. Gets a write lock, asynchronously awaiting for the lock if it is not immediately available.

System_CAPS_pubmethodWriteLockAsync(AsyncReaderWriterLock.LockFlags, CancellationToken)

Microsoft internal only. Gets a write lock, asynchronously awaiting for the lock if it is not immediately available.

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodIHangReportContributor.GetHangReport()

Microsoft internal only. data for a hang report.

This class is a custom awaitable rather than a Task{LockReleaser}, because it is necessary to set CallContext data in the context of the entity receiving the lock. To do this the code must be executed at the start of the continuation (whether or not it yields).

This type is thread-safe for all members.

Return to top
Show: