コード例 #1
0
        private KernelResult SetThreadActivity(int handle, bool pause)
        {
            KThread thread = _process.HandleTable.GetObject <KThread>(handle);

            if (thread == null)
            {
                return(KernelResult.InvalidHandle);
            }

            if (thread.Owner != _system.Scheduler.GetCurrentProcess())
            {
                return(KernelResult.InvalidHandle);
            }

            if (thread == _system.Scheduler.GetCurrentThread())
            {
                return(KernelResult.InvalidThread);
            }

            return(thread.SetActivity(pause));
        }