diff --git a/build-common/NHibernate.props b/build-common/NHibernate.props index c2676d0cd85..4fa8208b537 100644 --- a/build-common/NHibernate.props +++ b/build-common/NHibernate.props @@ -6,7 +6,7 @@ 0 dev - 12.0 + 13.0 $(NhVersion).$(VersionPatch) $(VersionSuffix).$(BuildNumber) diff --git a/src/NHibernate.Test/NHSpecificTest/NH2030/Fixture.cs b/src/NHibernate.Test/NHSpecificTest/NH2030/Fixture.cs index dba4873091e..d3f377e9e59 100644 --- a/src/NHibernate.Test/NHSpecificTest/NH2030/Fixture.cs +++ b/src/NHibernate.Test/NHSpecificTest/NH2030/Fixture.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Text; diff --git a/src/NHibernate/Cache/SyncCacheLock.cs b/src/NHibernate/Cache/SyncCacheLock.cs index c9eceacb63c..2cc4656a2fb 100644 --- a/src/NHibernate/Cache/SyncCacheLock.cs +++ b/src/NHibernate/Cache/SyncCacheLock.cs @@ -6,32 +6,27 @@ namespace NHibernate.Cache { class SyncCacheLock : ICacheLock { - private readonly MonitorLock _monitorLock; + private readonly InternalLock _internalLock; - class MonitorLock : IDisposable + class InternalLock : IDisposable { - private readonly object _lockObj; - - public MonitorLock(object lockObj) - { - _lockObj = lockObj; - } + private readonly Lock _lockObj = new Lock(); public IDisposable Lock() { - Monitor.Enter(_lockObj); + _lockObj.Enter(); return this; } public void Dispose() { - Monitor.Exit(_lockObj); + _lockObj.Exit(); } } public SyncCacheLock() { - _monitorLock = new MonitorLock(this); + _internalLock = new(); } public void Dispose() @@ -40,12 +35,12 @@ public void Dispose() public IDisposable ReadLock() { - return _monitorLock.Lock(); + return _internalLock.Lock(); } public IDisposable WriteLock() { - return _monitorLock.Lock(); + return _internalLock.Lock(); } public Task ReadLockAsync() diff --git a/src/NHibernate/Cache/Timestamper.cs b/src/NHibernate/Cache/Timestamper.cs index c904b9108b4..159ce788593 100644 --- a/src/NHibernate/Cache/Timestamper.cs +++ b/src/NHibernate/Cache/Timestamper.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; namespace NHibernate.Cache { @@ -11,7 +12,7 @@ namespace NHibernate.Cache /// public static class Timestamper { - private static object lockObject = new object(); + private static Lock lockObject = LockFactory.Create(); // hibernate is using System.currentMilliSeconds which is calculated // from jan 1, 1970 diff --git a/src/NHibernate/Context/MapBasedSessionContext.cs b/src/NHibernate/Context/MapBasedSessionContext.cs index 60f67ae7697..275d38febe9 100644 --- a/src/NHibernate/Context/MapBasedSessionContext.cs +++ b/src/NHibernate/Context/MapBasedSessionContext.cs @@ -1,5 +1,6 @@ using System.Collections; using System.Collections.Concurrent; +using System.Threading; using NHibernate.Engine; namespace NHibernate.Context @@ -9,7 +10,7 @@ public abstract class MapBasedSessionContext : CurrentSessionContext private readonly ISessionFactoryImplementor _factory; // Must be static, different instances of MapBasedSessionContext may have to yield the same map. - private static readonly object _locker = new object(); + private static readonly Lock _locker = LockFactory.Create(); protected MapBasedSessionContext(ISessionFactoryImplementor factory) { diff --git a/src/NHibernate/NHibernate.csproj b/src/NHibernate/NHibernate.csproj index e38db30c036..bcc078ff91f 100644 --- a/src/NHibernate/NHibernate.csproj +++ b/src/NHibernate/NHibernate.csproj @@ -73,6 +73,16 @@ + + + all + analyzers + + + + + + ./ diff --git a/src/NHibernate/Stat/StatisticsImpl.cs b/src/NHibernate/Stat/StatisticsImpl.cs index b7d055dc9e0..7641a337d44 100644 --- a/src/NHibernate/Stat/StatisticsImpl.cs +++ b/src/NHibernate/Stat/StatisticsImpl.cs @@ -3,12 +3,13 @@ using System.Text; using NHibernate.Engine; using System.Linq; +using System.Threading; namespace NHibernate.Stat { public class StatisticsImpl : IStatistics, IStatisticsImplementor { - private readonly object _syncRoot = new object(); + private readonly Lock _syncRoot = LockFactory.Create(); private static readonly INHibernateLogger log = NHibernateLogger.For(typeof(StatisticsImpl)); private readonly ISessionFactoryImplementor sessionFactory; diff --git a/src/NHibernate/Util/AsyncReaderWriterLock.cs b/src/NHibernate/Util/AsyncReaderWriterLock.cs index 203de8812ee..c6b1287a80b 100644 --- a/src/NHibernate/Util/AsyncReaderWriterLock.cs +++ b/src/NHibernate/Util/AsyncReaderWriterLock.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading; using System.Threading.Tasks; diff --git a/src/NHibernate/Util/SimpleMRUCache.cs b/src/NHibernate/Util/SimpleMRUCache.cs index b6ad7beb413..d7f8eb07409 100644 --- a/src/NHibernate/Util/SimpleMRUCache.cs +++ b/src/NHibernate/Util/SimpleMRUCache.cs @@ -1,5 +1,6 @@ using System; using System.Runtime.Serialization; +using System.Threading; namespace NHibernate.Util { @@ -17,7 +18,7 @@ public class SimpleMRUCache : IDeserializationCallback { private const int DefaultStrongRefCount = 128; - private readonly object _syncRoot = new object(); + private readonly Lock _syncRoot = LockFactory.Create(); private readonly int strongReferenceCount; diff --git a/src/NHibernate/Util/SoftLimitMRUCache.cs b/src/NHibernate/Util/SoftLimitMRUCache.cs index e69c3f2916e..3b4e67cf61e 100644 --- a/src/NHibernate/Util/SoftLimitMRUCache.cs +++ b/src/NHibernate/Util/SoftLimitMRUCache.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Runtime.Serialization; +using System.Threading; namespace NHibernate.Util { @@ -23,7 +24,7 @@ namespace NHibernate.Util public class SoftLimitMRUCache : IDeserializationCallback { private const int DefaultStrongRefCount = 128; - private readonly object _syncRoot = new object(); + private readonly Lock _syncRoot = LockFactory.Create(); private readonly int strongReferenceCount;