Blocks should be synchronized on read-only fields (#5212)
* Blocks should be synchronized on read-only fields * more readonlys * fix alignment * more * Update ISelfController.cs * simplify new * simplify new
This commit is contained in:
parent
f978d3726a
commit
82f90704a0
45 changed files with 60 additions and 68 deletions
|
@ -78,7 +78,7 @@ namespace ARMeilleure.Signal
|
||||||
private static IntPtr _signalHandlerPtr;
|
private static IntPtr _signalHandlerPtr;
|
||||||
private static IntPtr _signalHandlerHandle;
|
private static IntPtr _signalHandlerHandle;
|
||||||
|
|
||||||
private static readonly object _lock = new object();
|
private static readonly object _lock = new();
|
||||||
private static bool _initialized;
|
private static bool _initialized;
|
||||||
|
|
||||||
static NativeSignalHandler()
|
static NativeSignalHandler()
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace ARMeilleure.Translation.Cache
|
||||||
|
|
||||||
private static readonly List<CacheEntry> _cacheEntries = new List<CacheEntry>();
|
private static readonly List<CacheEntry> _cacheEntries = new List<CacheEntry>();
|
||||||
|
|
||||||
private static readonly object _lock = new object();
|
private static readonly object _lock = new();
|
||||||
private static bool _initialized;
|
private static bool _initialized;
|
||||||
|
|
||||||
[SupportedOSPlatform("windows")]
|
[SupportedOSPlatform("windows")]
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace Ryujinx.Audio.Backends.OpenAL
|
||||||
private Queue<OpenALAudioBuffer> _queuedBuffers;
|
private Queue<OpenALAudioBuffer> _queuedBuffers;
|
||||||
private ulong _playedSampleCount;
|
private ulong _playedSampleCount;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public OpenALHardwareDeviceSession(OpenALHardwareDeviceDriver driver, IVirtualMemoryManager memoryManager, SampleFormat requestedSampleFormat, uint requestedSampleRate, uint requestedChannelCount, float requestedVolume) : base(memoryManager, requestedSampleFormat, requestedSampleRate, requestedChannelCount)
|
public OpenALHardwareDeviceSession(OpenALHardwareDeviceDriver driver, IVirtualMemoryManager memoryManager, SampleFormat requestedSampleFormat, uint requestedSampleRate, uint requestedChannelCount, float requestedVolume) : base(memoryManager, requestedSampleFormat, requestedSampleRate, requestedChannelCount)
|
||||||
{
|
{
|
||||||
|
|
|
@ -11,7 +11,7 @@ namespace Ryujinx.Audio
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lock used to control the waiters registration.
|
/// Lock used to control the waiters registration.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Events signaled when the driver played audio buffers.
|
/// Events signaled when the driver played audio buffers.
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Ryujinx.Audio.Backends.Common
|
||||||
{
|
{
|
||||||
private const int RingBufferAlignment = 2048;
|
private const int RingBufferAlignment = 2048;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private byte[] _buffer;
|
private byte[] _buffer;
|
||||||
private int _size;
|
private int _size;
|
||||||
|
|
|
@ -14,12 +14,12 @@ namespace Ryujinx.Audio.Input
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AudioInputManager : IDisposable
|
public class AudioInputManager : IDisposable
|
||||||
{
|
{
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lock used for session allocation.
|
/// Lock used for session allocation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _sessionLock = new object();
|
private readonly object _sessionLock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The session ids allocation table.
|
/// The session ids allocation table.
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace Ryujinx.Audio.Input
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The lock of the parent.
|
/// The lock of the parent.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _parentLock;
|
private readonly object _parentLock;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The dispose state.
|
/// The dispose state.
|
||||||
|
|
|
@ -14,12 +14,12 @@ namespace Ryujinx.Audio.Output
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class AudioOutputManager : IDisposable
|
public class AudioOutputManager : IDisposable
|
||||||
{
|
{
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lock used for session allocation.
|
/// Lock used for session allocation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _sessionLock = new object();
|
private readonly object _sessionLock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The session ids allocation table.
|
/// The session ids allocation table.
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace Ryujinx.Audio.Output
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// THe lock of the parent.
|
/// THe lock of the parent.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _parentLock;
|
private readonly object _parentLock;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The dispose state.
|
/// The dispose state.
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
{
|
{
|
||||||
public class AudioRenderSystem : IDisposable
|
public class AudioRenderSystem : IDisposable
|
||||||
{
|
{
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private AudioRendererRenderingDevice _renderingDevice;
|
private AudioRendererRenderingDevice _renderingDevice;
|
||||||
private AudioRendererExecutionMode _executionMode;
|
private AudioRendererExecutionMode _executionMode;
|
||||||
|
|
|
@ -19,12 +19,12 @@ namespace Ryujinx.Audio.Renderer.Server
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lock used for session allocation.
|
/// Lock used for session allocation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _sessionLock = new object();
|
private readonly object _sessionLock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Lock used to control the <see cref="AudioProcessor"/> running state.
|
/// Lock used to control the <see cref="AudioProcessor"/> running state.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object _audioProcessorLock = new object();
|
private readonly object _audioProcessorLock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The session ids allocation table.
|
/// The session ids allocation table.
|
||||||
|
|
|
@ -16,7 +16,7 @@ namespace Ryujinx.Audio.Renderer.Server.Upsampler
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Global lock of the object.
|
/// Global lock of the object.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private object Lock = new object();
|
private readonly object Lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The upsamplers instances.
|
/// The upsamplers instances.
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
|
||||||
private int _refConsumerPtr;
|
private int _refConsumerPtr;
|
||||||
|
|
||||||
private Action _interruptAction;
|
private Action _interruptAction;
|
||||||
private object _interruptLock = new();
|
private readonly object _interruptLock = new();
|
||||||
|
|
||||||
public event EventHandler<ScreenCaptureImageInfo> ScreenCaptured;
|
public event EventHandler<ScreenCaptureImageInfo> ScreenCaptured;
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
||||||
private List<BufferMigration> _sources;
|
private List<BufferMigration> _sources;
|
||||||
private BufferMigration _migrationTarget;
|
private BufferMigration _migrationTarget;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Whether the modified range list has any entries or not.
|
/// Whether the modified range list has any entries or not.
|
||||||
|
@ -125,7 +125,7 @@ namespace Ryujinx.Graphics.Gpu.Memory
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
BufferModifiedRange overlap = overlaps[i];
|
BufferModifiedRange overlap = overlaps[i];
|
||||||
|
|
||||||
if (overlap.Address > address)
|
if (overlap.Address > address)
|
||||||
{
|
{
|
||||||
// The start of the remaining region is uncovered by this overlap. Call the action for it.
|
// The start of the remaining region is uncovered by this overlap. Call the action for it.
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Ryujinx.Graphics.OpenGL.Queries
|
||||||
private ulong _accumulatedCounter;
|
private ulong _accumulatedCounter;
|
||||||
private int _waiterCount;
|
private int _waiterCount;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private Queue<BufferedQuery> _queryPool;
|
private Queue<BufferedQuery> _queryPool;
|
||||||
private AutoResetEvent _queuedEvent = new AutoResetEvent(false);
|
private AutoResetEvent _queuedEvent = new AutoResetEvent(false);
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace Ryujinx.Graphics.OpenGL.Queries
|
||||||
private bool _hostAccessReserved = false;
|
private bool _hostAccessReserved = false;
|
||||||
private int _refCount = 1; // Starts with a reference from the counter queue.
|
private int _refCount = 1; // Starts with a reference from the counter queue.
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
private ulong _result = ulong.MaxValue;
|
private ulong _result = ulong.MaxValue;
|
||||||
private double _divisor = 1f;
|
private double _divisor = 1f;
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
{
|
{
|
||||||
private const int DisposedLiveFrames = 2;
|
private const int DisposedLiveFrames = 2;
|
||||||
|
|
||||||
private readonly object _lock = new object();
|
private readonly object _lock = new();
|
||||||
private readonly Dictionary<TextureCreateInfo, List<DisposedTexture>> _textures = new Dictionary<TextureCreateInfo, List<DisposedTexture>>();
|
private readonly Dictionary<TextureCreateInfo, List<DisposedTexture>> _textures = new Dictionary<TextureCreateInfo, List<DisposedTexture>>();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries
|
||||||
private ulong _accumulatedCounter;
|
private ulong _accumulatedCounter;
|
||||||
private int _waiterCount;
|
private int _waiterCount;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private Queue<BufferedQuery> _queryPool;
|
private Queue<BufferedQuery> _queryPool;
|
||||||
private AutoResetEvent _queuedEvent = new AutoResetEvent(false);
|
private AutoResetEvent _queuedEvent = new AutoResetEvent(false);
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries
|
||||||
private bool _hostAccessReserved = false;
|
private bool _hostAccessReserved = false;
|
||||||
private int _refCount = 1; // Starts with a reference from the counter queue.
|
private int _refCount = 1; // Starts with a reference from the counter queue.
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
private ulong _result = ulong.MaxValue;
|
private ulong _result = ulong.MaxValue;
|
||||||
private double _divisor = 1f;
|
private double _divisor = 1f;
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@ namespace Ryujinx.HLE.HOS.Applets
|
||||||
private bool _canAcceptController = false;
|
private bool _canAcceptController = false;
|
||||||
private KeyboardInputMode _inputMode = KeyboardInputMode.ControllerAndKeyboard;
|
private KeyboardInputMode _inputMode = KeyboardInputMode.ControllerAndKeyboard;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public event EventHandler AppletStateChanged;
|
public event EventHandler AppletStateChanged;
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
private const int TextBoxBlinkSleepMilliseconds = 100;
|
private const int TextBoxBlinkSleepMilliseconds = 100;
|
||||||
private const int RendererWaitTimeoutMilliseconds = 100;
|
private const int RendererWaitTimeoutMilliseconds = 100;
|
||||||
|
|
||||||
private readonly object _stateLock = new object();
|
private readonly object _stateLock = new();
|
||||||
|
|
||||||
private SoftwareKeyboardUiState _state = new SoftwareKeyboardUiState();
|
private SoftwareKeyboardUiState _state = new SoftwareKeyboardUiState();
|
||||||
private SoftwareKeyboardRendererBase _renderer;
|
private SoftwareKeyboardRendererBase _renderer;
|
||||||
|
|
|
@ -26,7 +26,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
const string CancelText = "Cancel";
|
const string CancelText = "Cancel";
|
||||||
const string ControllerToggleText = "Toggle input";
|
const string ControllerToggleText = "Toggle input";
|
||||||
|
|
||||||
private readonly object _bufferLock = new object();
|
private readonly object _bufferLock = new();
|
||||||
|
|
||||||
private RenderingSurfaceInfo _surfaceInfo = null;
|
private RenderingSurfaceInfo _surfaceInfo = null;
|
||||||
private Image<Argb32> _surface = null;
|
private Image<Argb32> _surface = null;
|
||||||
|
@ -311,7 +311,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
private static RectangleF MeasureString(ReadOnlySpan<char> text, Font font)
|
private static RectangleF MeasureString(ReadOnlySpan<char> text, Font font)
|
||||||
{
|
{
|
||||||
RendererOptions options = new RendererOptions(font);
|
RendererOptions options = new RendererOptions(font);
|
||||||
|
|
||||||
if (text == "")
|
if (text == "")
|
||||||
{
|
{
|
||||||
FontRectangle emptyRectangle = TextMeasurer.Measure(" ", options);
|
FontRectangle emptyRectangle = TextMeasurer.Measure(" ", options);
|
||||||
|
|
|
@ -26,8 +26,8 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
|
||||||
}
|
}
|
||||||
|
|
||||||
private TRef<bool> _cancelled = null;
|
private TRef<bool> _cancelled = null;
|
||||||
private Thread _thread = null;
|
private Thread _thread = null;
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public bool IsRunning
|
public bool IsRunning
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,8 +40,8 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||||
|
|
||||||
public ProcessState State { get; private set; }
|
public ProcessState State { get; private set; }
|
||||||
|
|
||||||
private object _processLock;
|
private readonly object _processLock = new();
|
||||||
private object _threadingLock;
|
private readonly object _threadingLock = new();
|
||||||
|
|
||||||
public KAddressArbiter AddressArbiter { get; private set; }
|
public KAddressArbiter AddressArbiter { get; private set; }
|
||||||
|
|
||||||
|
@ -94,9 +94,6 @@ namespace Ryujinx.HLE.HOS.Kernel.Process
|
||||||
|
|
||||||
public KProcess(KernelContext context, bool allowCodeMemoryForJit = false) : base(context)
|
public KProcess(KernelContext context, bool allowCodeMemoryForJit = false) : base(context)
|
||||||
{
|
{
|
||||||
_processLock = new object();
|
|
||||||
_threadingLock = new object();
|
|
||||||
|
|
||||||
AddressArbiter = new KAddressArbiter(context);
|
AddressArbiter = new KAddressArbiter(context);
|
||||||
|
|
||||||
_fullTlsPages = new SortedDictionary<ulong, KTlsPageInfo>();
|
_fullTlsPages = new SortedDictionary<ulong, KTlsPageInfo>();
|
||||||
|
|
|
@ -112,7 +112,7 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
|
||||||
|
|
||||||
public bool WaitingInArbitration { get; set; }
|
public bool WaitingInArbitration { get; set; }
|
||||||
|
|
||||||
private object _activityOperationLock;
|
private readonly object _activityOperationLock = new();
|
||||||
|
|
||||||
public KThread(KernelContext context) : base(context)
|
public KThread(KernelContext context) : base(context)
|
||||||
{
|
{
|
||||||
|
@ -123,8 +123,6 @@ namespace Ryujinx.HLE.HOS.Kernel.Threading
|
||||||
|
|
||||||
_mutexWaiters = new LinkedList<KThread>();
|
_mutexWaiters = new LinkedList<KThread>();
|
||||||
_pinnedWaiters = new LinkedList<KThread>();
|
_pinnedWaiters = new LinkedList<KThread>();
|
||||||
|
|
||||||
_activityOperationLock = new object();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Result Initialize(
|
public Result Initialize(
|
||||||
|
|
|
@ -17,8 +17,8 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
||||||
private KEvent _accumulatedSuspendedTickChangedEvent;
|
private KEvent _accumulatedSuspendedTickChangedEvent;
|
||||||
private int _accumulatedSuspendedTickChangedEventHandle;
|
private int _accumulatedSuspendedTickChangedEventHandle;
|
||||||
|
|
||||||
private object _fatalSectionLock = new object();
|
private readonly object _fatalSectionLock = new();
|
||||||
private int _fatalSectionCount;
|
private int _fatalSectionCount;
|
||||||
|
|
||||||
// TODO: Set this when the game goes in suspension (go back to home menu ect), we currently don't support that so we can keep it set to 0.
|
// TODO: Set this when the game goes in suspension (go back to home menu ect), we currently don't support that so we can keep it set to 0.
|
||||||
private ulong _accumulatedSuspendedTickValue = 0;
|
private ulong _accumulatedSuspendedTickValue = 0;
|
||||||
|
@ -429,4 +429,4 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletAE.AllSystemAppletProxiesService.Sys
|
||||||
return ResultCode.Success;
|
return ResultCode.Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace Ryujinx.HLE.HOS.Services.Friend.ServiceCreator
|
||||||
private readonly UserId _userId;
|
private readonly UserId _userId;
|
||||||
private readonly FriendServicePermissionLevel _permissionLevel;
|
private readonly FriendServicePermissionLevel _permissionLevel;
|
||||||
|
|
||||||
private readonly object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private KEvent _notificationEvent;
|
private KEvent _notificationEvent;
|
||||||
private int _notificationEventHandle = 0;
|
private int _notificationEventHandle = 0;
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
||||||
private NvFence _previousFailingFence;
|
private NvFence _previousFailingFence;
|
||||||
private uint _failingCount;
|
private uint _failingCount;
|
||||||
|
|
||||||
public readonly object Lock = new object();
|
public readonly object Lock = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Max failing count until waiting on CPU.
|
/// Max failing count until waiting on CPU.
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace Ryujinx.HLE.HOS.Services.Nv.NvDrvServices.NvHostCtrl
|
||||||
|
|
||||||
private Switch _device;
|
private Switch _device;
|
||||||
|
|
||||||
private object _syncpointAllocatorLock = new object();
|
private readonly object _syncpointAllocatorLock = new();
|
||||||
|
|
||||||
public NvHostSyncpt(Switch device)
|
public NvHostSyncpt(Switch device)
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd
|
||||||
{
|
{
|
||||||
private static ConcurrentDictionary<ulong, BsdContext> _registry = new ConcurrentDictionary<ulong, BsdContext>();
|
private static ConcurrentDictionary<ulong, BsdContext> _registry = new ConcurrentDictionary<ulong, BsdContext>();
|
||||||
|
|
||||||
private readonly object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private List<IFileDescriptor> _fds;
|
private List<IFileDescriptor> _fds;
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Ryujinx.HLE.HOS.Services.Sockets.Bsd.Impl
|
||||||
private ulong _value;
|
private ulong _value;
|
||||||
private readonly EventFdFlags _flags;
|
private readonly EventFdFlags _flags;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public bool Blocking { get => !_flags.HasFlag(EventFdFlags.NonBlocking); set => throw new NotSupportedException(); }
|
public bool Blocking { get => !_flags.HasFlag(EventFdFlags.NonBlocking); set => throw new NotSupportedException(); }
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ namespace Ryujinx.HLE.HOS.Services.Spl
|
||||||
{
|
{
|
||||||
private RandomNumberGenerator _rng;
|
private RandomNumberGenerator _rng;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public IRandomInterface(ServiceCtx context)
|
public IRandomInterface(ServiceCtx context)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,13 +40,13 @@ namespace Ryujinx.HLE.HOS.Services.Ssl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private VirtualFileSystem _virtualFileSystem;
|
private VirtualFileSystem _virtualFileSystem;
|
||||||
private IntegrityCheckLevel _fsIntegrityCheckLevel;
|
private IntegrityCheckLevel _fsIntegrityCheckLevel;
|
||||||
private ContentManager _contentManager;
|
private ContentManager _contentManager;
|
||||||
private bool _initialized;
|
private bool _initialized;
|
||||||
private Dictionary<CaCertificateId, CertStoreEntry> _certificates;
|
private Dictionary<CaCertificateId, CertStoreEntry> _certificates;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private struct CertStoreFileHeader
|
private struct CertStoreFileHeader
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,7 +34,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
public bool EnableExternalEvent;
|
public bool EnableExternalEvent;
|
||||||
public int MaxBufferCountCached;
|
public int MaxBufferCountCached;
|
||||||
|
|
||||||
public readonly object Lock = new object();
|
public readonly object Lock = new();
|
||||||
|
|
||||||
private KEvent _waitBufferFreeEvent;
|
private KEvent _waitBufferFreeEvent;
|
||||||
private KEvent _frameAvailableEvent;
|
private KEvent _frameAvailableEvent;
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
private uint _currentCallbackTicket;
|
private uint _currentCallbackTicket;
|
||||||
private uint _callbackTicket;
|
private uint _callbackTicket;
|
||||||
|
|
||||||
private readonly object _callbackLock = new object();
|
private readonly object _callbackLock = new();
|
||||||
|
|
||||||
public BufferQueueProducer(BufferQueueCore core, ITickSource tickSource)
|
public BufferQueueProducer(BufferQueueCore core, ITickSource tickSource)
|
||||||
{
|
{
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
|
|
||||||
protected BufferQueueConsumer Consumer;
|
protected BufferQueueConsumer Consumer;
|
||||||
|
|
||||||
protected readonly object Lock = new object();
|
protected readonly object Lock = new();
|
||||||
|
|
||||||
private IConsumerListener _listener;
|
private IConsumerListener _listener;
|
||||||
|
|
||||||
|
@ -168,7 +168,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
|
|
||||||
Slot slot = Slots[slotIndex];
|
Slot slot = Slots[slotIndex];
|
||||||
|
|
||||||
// TODO: Check this. On Android, this checks the "handle". I assume NvMapHandle is the handle, but it might not be.
|
// TODO: Check this. On Android, this checks the "handle". I assume NvMapHandle is the handle, but it might not be.
|
||||||
return !slot.GraphicBuffer.IsNull && slot.GraphicBuffer.Object.Buffer.Surfaces[0].NvMapHandle == graphicBuffer.Object.Buffer.Surfaces[0].NvMapHandle;
|
return !slot.GraphicBuffer.IsNull && slot.GraphicBuffer.Object.Buffer.Surfaces[0].NvMapHandle == graphicBuffer.Object.Buffer.Surfaces[0].NvMapHandle;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
|
||||||
private int _swapInterval;
|
private int _swapInterval;
|
||||||
private int _swapIntervalDelay;
|
private int _swapIntervalDelay;
|
||||||
|
|
||||||
private readonly object Lock = new object();
|
private readonly object Lock = new();
|
||||||
|
|
||||||
public long RenderLayerId { get; private set; }
|
public long RenderLayerId { get; private set; }
|
||||||
|
|
||||||
|
|
|
@ -13,14 +13,13 @@ namespace Ryujinx.HLE.HOS.Services.Time.TimeZone
|
||||||
private UInt128 _timeZoneRuleVersion;
|
private UInt128 _timeZoneRuleVersion;
|
||||||
private uint _totalLocationNameCount;
|
private uint _totalLocationNameCount;
|
||||||
private SteadyClockTimePoint _timeZoneUpdateTimePoint;
|
private SteadyClockTimePoint _timeZoneUpdateTimePoint;
|
||||||
private object _lock;
|
private readonly object _lock = new();
|
||||||
|
|
||||||
public TimeZoneManager()
|
public TimeZoneManager()
|
||||||
{
|
{
|
||||||
_isInitialized = false;
|
_isInitialized = false;
|
||||||
_deviceLocationName = "UTC";
|
_deviceLocationName = "UTC";
|
||||||
_timeZoneRuleVersion = new UInt128();
|
_timeZoneRuleVersion = new UInt128();
|
||||||
_lock = new object();
|
|
||||||
_myRules = new Box<TimeZoneRule>();
|
_myRules = new Box<TimeZoneRule>();
|
||||||
|
|
||||||
_timeZoneUpdateTimePoint = SteadyClockTimePoint.GetRandom();
|
_timeZoneUpdateTimePoint = SteadyClockTimePoint.GetRandom();
|
||||||
|
|
|
@ -13,7 +13,7 @@ namespace Ryujinx.Horizon.Sdk.OsTypes.Impl
|
||||||
|
|
||||||
private readonly List<MultiWaitHolderBase> _multiWaits;
|
private readonly List<MultiWaitHolderBase> _multiWaits;
|
||||||
|
|
||||||
private object _lock;
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private int _waitingThreadHandle;
|
private int _waitingThreadHandle;
|
||||||
|
|
||||||
|
@ -24,8 +24,6 @@ namespace Ryujinx.Horizon.Sdk.OsTypes.Impl
|
||||||
public MultiWaitImpl()
|
public MultiWaitImpl()
|
||||||
{
|
{
|
||||||
_multiWaits = new List<MultiWaitHolderBase>();
|
_multiWaits = new List<MultiWaitHolderBase>();
|
||||||
|
|
||||||
_lock = new object();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LinkMultiWaitHolder(MultiWaitHolderBase multiWaitHolder)
|
public void LinkMultiWaitHolder(MultiWaitHolderBase multiWaitHolder)
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace Ryujinx.Input.SDL2
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE2,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE2,
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE3,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE3,
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE4,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_PADDLE4,
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_TOUCHPAD,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_TOUCHPAD,
|
||||||
|
|
||||||
// Virtual buttons are invalid, ignored.
|
// Virtual buttons are invalid, ignored.
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_INVALID,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_INVALID,
|
||||||
|
@ -55,7 +55,7 @@ namespace Ryujinx.Input.SDL2
|
||||||
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_INVALID,
|
SDL_GameControllerButton.SDL_CONTROLLER_BUTTON_INVALID,
|
||||||
};
|
};
|
||||||
|
|
||||||
private object _userMappingLock = new object();
|
private readonly object _userMappingLock = new();
|
||||||
|
|
||||||
private List<ButtonMappingEntry> _buttonsUserMapping;
|
private List<ButtonMappingEntry> _buttonsUserMapping;
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace Ryujinx.Input.SDL2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private object _userMappingLock = new object();
|
private readonly object _userMappingLock = new();
|
||||||
|
|
||||||
private readonly SDL2KeyboardDriver _driver;
|
private readonly SDL2KeyboardDriver _driver;
|
||||||
private StandardKeyboardInputConfig _configuration;
|
private StandardKeyboardInputConfig _configuration;
|
||||||
|
|
|
@ -15,7 +15,7 @@ namespace Ryujinx.Input.HLE
|
||||||
{
|
{
|
||||||
private CemuHookClient _cemuHookClient;
|
private CemuHookClient _cemuHookClient;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private bool _blockInputUpdates;
|
private bool _blockInputUpdates;
|
||||||
|
|
||||||
|
@ -271,7 +271,7 @@ namespace Ryujinx.Input.HLE
|
||||||
|
|
||||||
_device.Hid.Mouse.Update((int)position.X, (int)position.Y, buttons, (int)mouseInput.Scroll.X, (int)mouseInput.Scroll.Y, true);
|
_device.Hid.Mouse.Update((int)position.X, (int)position.Y, buttons, (int)mouseInput.Scroll.X, (int)mouseInput.Scroll.Y, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_device.Hid.Mouse.Update(0, 0);
|
_device.Hid.Mouse.Update(0, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,7 +52,7 @@ namespace Ryujinx.Memory.Tracking
|
||||||
|
|
||||||
private event Action _onDirty;
|
private event Action _onDirty;
|
||||||
|
|
||||||
private object _preActionLock = new object();
|
private readonly object _preActionLock = new();
|
||||||
private RegionSignal _preAction; // Action to perform before a read or write. This will block the memory access.
|
private RegionSignal _preAction; // Action to perform before a read or write. This will block the memory access.
|
||||||
private PreciseRegionSignal _preciseAction; // Action to perform on a precise read or write.
|
private PreciseRegionSignal _preciseAction; // Action to perform on a precise read or write.
|
||||||
private readonly List<VirtualRegion> _regions;
|
private readonly List<VirtualRegion> _regions;
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace Ryujinx.SDL2.Common
|
||||||
|
|
||||||
private ConcurrentDictionary<uint, Action<SDL_Event>> _registeredWindowHandlers;
|
private ConcurrentDictionary<uint, Action<SDL_Event>> _registeredWindowHandlers;
|
||||||
|
|
||||||
private object _lock = new object();
|
private readonly object _lock = new();
|
||||||
|
|
||||||
private SDL2Driver() {}
|
private SDL2Driver() {}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,7 @@ namespace Ryujinx.Input.GTK3
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private object _userMappingLock = new object();
|
private readonly object _userMappingLock = new();
|
||||||
|
|
||||||
private readonly GTK3KeyboardDriver _driver;
|
private readonly GTK3KeyboardDriver _driver;
|
||||||
private StandardKeyboardInputConfig _configuration;
|
private StandardKeyboardInputConfig _configuration;
|
||||||
|
|
Reference in a new issue