public int Release()
{
return Release(1);
}
Semaphore::Release ( int releaseCount ) : int |
internal void ExitCPUContext(ICPUContext CPUContext) { System.Diagnostics.Debug.Assert(CPUContext.IsCurrent()); ((CPUContext)CPUContext).Release(); // UnlockCPUでは、deleteしたCPUContextに対してEndDelaySuspendを // 呼んでしまうので、その手前の処理のみ実行。 int TlsLockCount = (int)m_TlsIndex.Value; TlsLockCount--; // ロック解除 if (TlsLockCount == 0) { m_SysSem.Release(); Interlocked.Decrement(ref m_Locked); } m_TlsIndex.Value = TlsLockCount; m_IntEvent.Set(); CPUContext.Exit(); }