void WithAtomicRef_ReaderEntry() { for (var i = 0; i < NumIterations; ++i) { var curUser = _atomicUser.Value; BenchmarkUtils.Assert(curUser.Name == _usernames[curUser.LoginID]); BenchmarkUtils.SimulateContention(ContentionLevel); } }
void WithStandardLock_ReaderEntry() { for (var i = 0; i < NumIterations; ++i) { User curUser; lock (_lockObject) curUser = _standardLockUser; BenchmarkUtils.Assert(curUser.Name == _usernames[curUser.LoginID]); BenchmarkUtils.SimulateContention(ContentionLevel); } }
void WithRWLS_ReaderEntry() { for (var i = 0; i < NumIterations; ++i) { _rwls.EnterReadLock(); var curUser = _rwlsUser; _rwls.ExitReadLock(); BenchmarkUtils.Assert(curUser.Name == _usernames[curUser.LoginID]); BenchmarkUtils.SimulateContention(ContentionLevel); } }