CSPspEmu.Hle.Modules.threadman.ThreadManForUser.sceKernelReceiveMbx C# (CSharp) Метод

sceKernelReceiveMbx() приватный Метод

private sceKernelReceiveMbx ( MessageBox MessageBox, PspPointer PointerToMessage, uint Timeout ) : int
MessageBox MessageBox
PointerToMessage PspPointer
Timeout uint
Результат int
        public int sceKernelReceiveMbx(MessageBox MessageBox, PspPointer* PointerToMessage, uint* Timeout)
        {
            var CurrentThread = ThreadManager.Current;
            bool TimedOut = false;
            CurrentThread.SetWaitAndPrepareWakeUp(HleThread.WaitType.None, "sceKernelReceiveMbx", MessageBox, WakeUpCallback =>
            {
                if (Timeout != null)
                {
                    PspRtc.RegisterTimerInOnce(TimeSpanUtils.FromMicroseconds(*Timeout), () =>
                    {
                        TimedOut = true;
                        WakeUpCallback();
                    });
                }
                MessageBox.Receive(PointerToMessage, WakeUpCallback);
            }, HandleCallbacks: false);

            if (TimedOut)
            {
                return (int)SceKernelErrors.ERROR_KERNEL_WAIT_TIMEOUT;
            }
            else
            {
                //if (Timeout)
                //return MessageBox.Receive(Message);
                return 0;
            }
        }
ThreadManForUser