Ejemplo n.º 1
0
        public void UnlockCPU()
        {
            int TlsLockCount = m_TlsIndex.Value;

            TlsLockCount--;

            System.Diagnostics.Debug.Assert(TlsLockCount >= 0);

            // ロック解除
            if (TlsLockCount == 0)
            {
                m_SysSem.Release();
                Interlocked.Decrement(ref m_Locked);
            }

            m_TlsIndex.Value = TlsLockCount;

            if (TlsLockCount == 0)
            {
                CPUContext LockCPUContext = CPUContext.GetCurrent();
                if (LockCPUContext != null)
                {
                    LockCPUContext.EndDelaySuspend();
                }
            }
        }
Ejemplo n.º 2
0
        void EndDelaySuspend(CPUContext CPUContext)
        {
            if (CPUContext == null)
            {
                return;
            }

            if (!CPUContext.EndDelaySuspend())
            {
                CPUContext.Terminate();
            }
        }
Ejemplo n.º 3
0
        void EndDelaySuspend(CPUContext CPUContext)
        {
            if (CPUContext == null)
                return;

            if (!CPUContext.EndDelaySuspend()) {
                CPUContext.Terminate();
            }
        }