mirror of
https://github.com/Thealexbarney/LibHac.git
synced 2024-11-14 10:49:41 +01:00
Add default constructors to some mutex types
This commit is contained in:
parent
06806517da
commit
527d81a3b2
8 changed files with 37 additions and 20 deletions
|
@ -37,16 +37,9 @@ public static class Assert
|
||||||
{
|
{
|
||||||
private const string AssertCondition = "ENABLE_ASSERTS";
|
private const string AssertCondition = "ENABLE_ASSERTS";
|
||||||
|
|
||||||
private static SdkMutexType _mutex = InitMutex();
|
private static SdkMutexType _mutex = new SdkMutexType();
|
||||||
private static AssertionFailureHandler _assertionFailureHandler = DefaultAssertionFailureHandler;
|
private static AssertionFailureHandler _assertionFailureHandler = DefaultAssertionFailureHandler;
|
||||||
|
|
||||||
private static SdkMutexType InitMutex()
|
|
||||||
{
|
|
||||||
var mutex = new SdkMutexType();
|
|
||||||
mutex.Initialize();
|
|
||||||
return mutex;
|
|
||||||
}
|
|
||||||
|
|
||||||
private static AbortReason ToAbortReason(AssertionType assertionType)
|
private static AbortReason ToAbortReason(AssertionType assertionType)
|
||||||
{
|
{
|
||||||
switch (assertionType)
|
switch (assertionType)
|
||||||
|
@ -1182,4 +1175,4 @@ public static class Assert
|
||||||
AlignedImpl(AssertionType.SdkRequires, value, alignment, valueText, alignmentText, functionName, fileName,
|
AlignedImpl(AssertionType.SdkRequires, value, alignment, valueText, alignmentText, functionName, fileName,
|
||||||
lineNumber);
|
lineNumber);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -27,7 +27,6 @@ internal class MountTable : IDisposable
|
||||||
{
|
{
|
||||||
_fileSystemList = new LinkedList<FileSystemAccessor>();
|
_fileSystemList = new LinkedList<FileSystemAccessor>();
|
||||||
_mutex = new SdkMutexType();
|
_mutex = new SdkMutexType();
|
||||||
_mutex.Initialize();
|
|
||||||
|
|
||||||
_fsClient = fsClient;
|
_fsClient = fsClient;
|
||||||
}
|
}
|
||||||
|
@ -162,4 +161,4 @@ internal class MountTable : IDisposable
|
||||||
dataIdCount = count;
|
dataIdCount = count;
|
||||||
return Result.Success;
|
return Result.Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -291,7 +291,6 @@ public partial class BucketTree : IDisposable
|
||||||
public OffsetCache()
|
public OffsetCache()
|
||||||
{
|
{
|
||||||
Mutex = new SdkMutexType();
|
Mutex = new SdkMutexType();
|
||||||
Mutex.Initialize();
|
|
||||||
IsInitialized = false;
|
IsInitialized = false;
|
||||||
Offsets.StartOffset = -1;
|
Offsets.StartOffset = -1;
|
||||||
Offsets.EndOffset = -1;
|
Offsets.EndOffset = -1;
|
||||||
|
@ -1295,4 +1294,4 @@ public partial class BucketTree : IDisposable
|
||||||
return _tree.ScanContinuousReading(out info, in param);
|
return _tree.ScanContinuousReading(out info, in param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -7,7 +7,7 @@ internal struct InternalConditionVariableImpl
|
||||||
{
|
{
|
||||||
private object _obj;
|
private object _obj;
|
||||||
|
|
||||||
public InternalConditionVariableImpl(nint _ = 0) => _obj = new object();
|
public InternalConditionVariableImpl() => _obj = new object();
|
||||||
public void Initialize() => _obj = new object();
|
public void Initialize() => _obj = new object();
|
||||||
|
|
||||||
public void Signal()
|
public void Signal()
|
||||||
|
@ -73,4 +73,4 @@ internal struct InternalConditionVariableImpl
|
||||||
|
|
||||||
return ConditionVariableStatus.Success;
|
return ConditionVariableStatus.Success;
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@ internal struct InternalConditionVariable
|
||||||
{
|
{
|
||||||
private InternalConditionVariableImpl _impl;
|
private InternalConditionVariableImpl _impl;
|
||||||
|
|
||||||
public InternalConditionVariable(nint _ = 0)
|
public InternalConditionVariable()
|
||||||
{
|
{
|
||||||
_impl = new InternalConditionVariableImpl();
|
_impl = new InternalConditionVariableImpl();
|
||||||
}
|
}
|
||||||
|
@ -16,4 +16,4 @@ internal struct InternalConditionVariable
|
||||||
|
|
||||||
public void TimedWait(ref InternalCriticalSection cs, in TimeoutHelper timeoutHelper) =>
|
public void TimedWait(ref InternalCriticalSection cs, in TimeoutHelper timeoutHelper) =>
|
||||||
_impl.TimedWait(ref cs, in timeoutHelper);
|
_impl.TimedWait(ref cs, in timeoutHelper);
|
||||||
}
|
}
|
|
@ -6,6 +6,11 @@ internal struct InternalCriticalSectionImpl
|
||||||
{
|
{
|
||||||
private object _obj;
|
private object _obj;
|
||||||
|
|
||||||
|
public InternalCriticalSectionImpl()
|
||||||
|
{
|
||||||
|
_obj = new object();
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
_obj = new object();
|
_obj = new object();
|
||||||
|
@ -32,4 +37,4 @@ internal struct InternalCriticalSectionImpl
|
||||||
{
|
{
|
||||||
return Monitor.IsEntered(_obj);
|
return Monitor.IsEntered(_obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -4,6 +4,11 @@ public struct InternalCriticalSection : ILockable
|
||||||
{
|
{
|
||||||
private InternalCriticalSectionImpl _impl;
|
private InternalCriticalSectionImpl _impl;
|
||||||
|
|
||||||
|
public InternalCriticalSection()
|
||||||
|
{
|
||||||
|
_impl = new InternalCriticalSectionImpl();
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize() => _impl.Initialize();
|
public void Initialize() => _impl.Initialize();
|
||||||
public void FinalizeObject() => _impl.FinalizeObject();
|
public void FinalizeObject() => _impl.FinalizeObject();
|
||||||
|
|
||||||
|
@ -16,4 +21,4 @@ public struct InternalCriticalSection : ILockable
|
||||||
public void Unlock() => _impl.Leave();
|
public void Unlock() => _impl.Leave();
|
||||||
|
|
||||||
public bool IsLockedByCurrentThread() => _impl.IsLockedByCurrentThread();
|
public bool IsLockedByCurrentThread() => _impl.IsLockedByCurrentThread();
|
||||||
}
|
}
|
|
@ -7,6 +7,11 @@ public class SdkMutex : ILockable
|
||||||
{
|
{
|
||||||
private SdkMutexType _mutex;
|
private SdkMutexType _mutex;
|
||||||
|
|
||||||
|
public SdkMutex()
|
||||||
|
{
|
||||||
|
_mutex.Initialize();
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
_mutex.Initialize();
|
_mutex.Initialize();
|
||||||
|
@ -37,6 +42,11 @@ public struct SdkMutexType : ILockable
|
||||||
{
|
{
|
||||||
private InternalCriticalSection _cs;
|
private InternalCriticalSection _cs;
|
||||||
|
|
||||||
|
public SdkMutexType()
|
||||||
|
{
|
||||||
|
_cs = new InternalCriticalSection();
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
_cs.Initialize();
|
_cs.Initialize();
|
||||||
|
@ -96,6 +106,12 @@ public struct SdkRecursiveMutexType : ILockable
|
||||||
private InternalCriticalSection _cs;
|
private InternalCriticalSection _cs;
|
||||||
private int _recursiveCount;
|
private int _recursiveCount;
|
||||||
|
|
||||||
|
public SdkRecursiveMutexType()
|
||||||
|
{
|
||||||
|
_cs = new InternalCriticalSection();
|
||||||
|
_recursiveCount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
public void Initialize()
|
public void Initialize()
|
||||||
{
|
{
|
||||||
_cs.Initialize();
|
_cs.Initialize();
|
||||||
|
@ -144,4 +160,4 @@ public struct SdkRecursiveMutexType : ILockable
|
||||||
{
|
{
|
||||||
return _cs.IsLockedByCurrentThread();
|
return _cs.IsLockedByCurrentThread();
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in a new issue