public async Task AcquireReaderAsync_UpgradeToWriterAsync_CancellationToken() { var readersWriterAsyncLock = new ReadersWriterAsyncLock(); using (var upgradeableLock = await readersWriterAsyncLock.AcquireUpgradeableReaderAsync()) using (var writerLock = await upgradeableLock.UpgradeToWriterAsync()) { } }
public void AcquireReader_UpgradeToWriter_CancellationToken() { var readersWriterAsyncLock = new ReadersWriterAsyncLock(); using (var upgradeableLock = readersWriterAsyncLock.AcquireUpgradeableReader()) using (var writerLock = upgradeableLock.UpgradeToWriter()) { } }
public void AcquireReadersAndWriter_CancellationToken() { var readersWriterAsyncLock = new ReadersWriterAsyncLock(); using (readersWriterAsyncLock.AcquireReader()) using (readersWriterAsyncLock.AcquireReader()) using (readersWriterAsyncLock.AcquireReader()) { var start = Environment.TickCount; using (var cancellationTokenSource = new CancellationTokenSource(100)) { Assert.Throws <OperationCanceledException>(() => readersWriterAsyncLock.AcquireWriter(cancellationTokenSource.Token)); Assert.True(Environment.TickCount - start >= 90); } } }