public SetAndRelease_and_ResetItemTimeout_called_concurrently()
{
var modifyTask = Task.Factory.StartNew(() =>
{
for (int i = 0; i < Iterations; i++)
{
object lockId;
bool locked;
TimeSpan lockAge;
SessionStateActions actions;
var sessionState = Subject.GetItemExclusive(null, SessionId, out locked, out lockAge, out lockId, out actions);
Subject.SetAndReleaseItemExclusive(null, SessionId, sessionState, lockId, false);
}
});
var resetTimeoutTask = Task.Factory.StartNew(() =>
{
for (int i = 0; i < Iterations; i++)
{
Subject.ResetItemTimeout(null, SessionId);
}
});
Task.WaitAll(modifyTask, resetTimeoutTask);
}