public void Lock(CpuThreadState CurrentCpuThreadState, int UpdateCountValue, uint* Timeout)
{
if (Timeout != null)
{
Console.Error.WriteLine("PspMutex.Lock with Timeout not implemented!!");
//throw (new NotImplementedException());
}
if (UpdateCountValue <= 0) throw (new SceKernelException(SceKernelErrors.ERROR_KERNEL_ILLEGAL_COUNT));
//Console.Error.WriteLine("Lock : {0}", ThreadManager.Current.Id);
if (!TryLock(CurrentCpuThreadState, UpdateCountValue))
{
//ThreadManager.Current.
ThreadManForUser.ThreadManager.Current.SetWaitAndPrepareWakeUp(HleThread.WaitType.Mutex, "sceKernelLockMutex", this, (WakeUp) =>
{
WakeUpList.Enqueue(() =>
{
WakeUp();
});
}, HandleCallbacks: false);
}
}