Skip to content

Commit aca13b5

Browse files
committed
Remove LockGuard concurrent exclusion tests
Removed tests verifying that LockGuard read/write locks block conflicting access and release on Dispose/Unlock. These covered scenarios where readers block writers, writers block readers/other writers, and explicit unlocks. No other test logic was changed.
1 parent 3818527 commit aca13b5

1 file changed

Lines changed: 0 additions & 119 deletions

File tree

Hexa.NET.Utilities.Tests/ReaderWriterLockLightTests.cs

Lines changed: 0 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -526,125 +526,6 @@ public void LockGuard_LockRead_WhenWriteAlreadyHeld_Throws()
526526
}
527527

528528
#endregion LockGuard – single-threaded
529-
530-
#region LockGuard – concurrent exclusion via Dispose / Unlock
531-
532-
[Test]
533-
public void LockGuard_ReadLock_BlocksWriter_ReleasedOnDispose()
534-
{
535-
var locks = MakeLock();
536-
var writerStarted = new ManualResetEventSlim(false);
537-
var writerEntered = new ManualResetEventSlim(false);
538-
Task writer;
539-
540-
{
541-
using var guard = locks[0].AcquireReadLock();
542-
543-
writer = Task.Run(() =>
544-
{
545-
writerStarted.Set();
546-
locks[0].EnterWrite();
547-
writerEntered.Set();
548-
locks[0].ExitWrite();
549-
});
550-
551-
writerStarted.Wait();
552-
Thread.Sleep(30);
553-
Assert.That(writerEntered.IsSet, Is.False,
554-
"Writer should be blocked while read guard is held");
555-
}
556-
557-
Assert.That(writerEntered.Wait(TimeSpan.FromSeconds(5)), Is.True,
558-
"Writer should enter after read guard is disposed");
559-
writer.Wait();
560-
}
561-
562-
[Test]
563-
public void LockGuard_WriteLock_BlocksReader_ReleasedOnDispose()
564-
{
565-
var locks = MakeLock();
566-
var readerStarted = new ManualResetEventSlim(false);
567-
var readerEntered = new ManualResetEventSlim(false);
568-
Task reader;
569-
570-
{
571-
using var guard = locks[0].AcquireWriteLock();
572-
573-
reader = Task.Run(() =>
574-
{
575-
readerStarted.Set();
576-
locks[0].EnterRead();
577-
readerEntered.Set();
578-
locks[0].ExitRead();
579-
});
580-
581-
readerStarted.Wait();
582-
Thread.Sleep(30);
583-
Assert.That(readerEntered.IsSet, Is.False,
584-
"Reader should be blocked while write guard is held");
585-
}
586-
587-
Assert.That(readerEntered.Wait(TimeSpan.FromSeconds(5)), Is.True,
588-
"Reader should enter after write guard is disposed");
589-
reader.Wait();
590-
}
591-
592-
[Test]
593-
public void LockGuard_WriteLock_BlocksOtherWriters_ReleasedOnDispose()
594-
{
595-
var locks = MakeLock();
596-
var writer2Started = new ManualResetEventSlim(false);
597-
var writer2Entered = new ManualResetEventSlim(false);
598-
Task writer2;
599-
600-
{
601-
using var guard = locks[0].AcquireWriteLock();
602-
603-
writer2 = Task.Run(() =>
604-
{
605-
writer2Started.Set();
606-
locks[0].EnterWrite();
607-
writer2Entered.Set();
608-
locks[0].ExitWrite();
609-
});
610-
611-
writer2Started.Wait();
612-
Thread.Sleep(30);
613-
Assert.That(writer2Entered.IsSet, Is.False,
614-
"Second writer should be blocked while write guard is held");
615-
}
616-
617-
Assert.That(writer2Entered.Wait(TimeSpan.FromSeconds(5)), Is.True,
618-
"Second writer should enter after write guard is disposed");
619-
writer2.Wait();
620-
}
621-
622-
[Test]
623-
public void LockGuard_Unlock_ReleasesWriteLock_AllowsConcurrentWriter()
624-
{
625-
var locks = MakeLock();
626-
var guard = locks[0].AcquireWriteLock();
627-
bool writer2Entered = false;
628-
629-
var writer2 = Task.Run(() =>
630-
{
631-
locks[0].EnterWrite();
632-
Volatile.Write(ref writer2Entered, true);
633-
locks[0].ExitWrite();
634-
});
635-
636-
Thread.Sleep(30);
637-
Assert.That(Volatile.Read(ref writer2Entered), Is.False,
638-
"Writer2 should be blocked before Unlock");
639-
640-
guard.Unlock();
641-
642-
Assert.That(Task.WaitAll(new[] { writer2 }, TimeSpan.FromSeconds(5)), Is.True);
643-
Assert.That(writer2Entered, Is.True,
644-
"Writer2 should have entered after Unlock");
645-
}
646-
647-
#endregion LockGuard – concurrent exclusion via Dispose / Unlock
648529
}
649530
}
650531

0 commit comments

Comments
 (0)