private ActorConcurrencyLock CreateAndInitializeReentrancyGuard(ActorBase owner, ActorReentrancyMode mode) { var settings = new ActorConcurrencySettings() { ReentrancyMode = mode }; var guard = new ActorConcurrencyLock(owner, settings); return(guard); }
private static void RunTest(ActorConcurrencyLock guard) { var test = Guid.NewGuid().ToString(); guard.Acquire(test, null, CancellationToken.None).Wait(); guard.Test_CurrentCount.Should().Be(1); _currentContext = test; for (var i = 0; i < 10; i++) { var testContext = test + ":" + Guid.NewGuid().ToString(); guard.Acquire(testContext, null, CancellationToken.None).Wait(); testContext.Should().StartWith(_currentContext, "Call context Prefix Matching "); guard.ReleaseContext(testContext).Wait(); } guard.Test_CurrentCount.Should().Be(1); guard.ReleaseContext(test).Wait(); }