diff options
author | sunshineinabox <aqemail@gmail.com> | 2023-10-12 09:11:15 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-12 18:11:15 +0200 |
commit | e768a54f17b390c3ac10904c7909e3bef020edbd (patch) | |
tree | 4dbb599d8f32cca2644f7a9e68eb0ca512ac4eb7 /src/Ryujinx.Common/ReactiveObject.cs | |
parent | 4e2bb130809c9fe0b8707fb9aac0058217330a49 (diff) |
Replace ReaderWriterLock with ReaderWriterLockSlim (#5785)1.1.1051
* Replace ReaderWriterLock with ReaderWriterLockSlim
* Resolve Feedback + Correct typo
* Revert some unncessary logic
Diffstat (limited to 'src/Ryujinx.Common/ReactiveObject.cs')
-rw-r--r-- | src/Ryujinx.Common/ReactiveObject.cs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/Ryujinx.Common/ReactiveObject.cs b/src/Ryujinx.Common/ReactiveObject.cs index d2624c36..ac7d2c4d 100644 --- a/src/Ryujinx.Common/ReactiveObject.cs +++ b/src/Ryujinx.Common/ReactiveObject.cs @@ -5,7 +5,7 @@ namespace Ryujinx.Common { public class ReactiveObject<T> { - private readonly ReaderWriterLock _readerWriterLock = new(); + private readonly ReaderWriterLockSlim _readerWriterLock = new(); private bool _isInitialized; private T _value; @@ -15,15 +15,15 @@ namespace Ryujinx.Common { get { - _readerWriterLock.AcquireReaderLock(Timeout.Infinite); + _readerWriterLock.EnterReadLock(); T value = _value; - _readerWriterLock.ReleaseReaderLock(); + _readerWriterLock.ExitReadLock(); return value; } set { - _readerWriterLock.AcquireWriterLock(Timeout.Infinite); + _readerWriterLock.EnterWriteLock(); T oldValue = _value; @@ -32,7 +32,7 @@ namespace Ryujinx.Common _isInitialized = true; _value = value; - _readerWriterLock.ReleaseWriterLock(); + _readerWriterLock.ExitWriteLock(); if (!oldIsInitialized || oldValue == null || !oldValue.Equals(_value)) { |