Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1998-1999 Microsoft Corporation All rights reserved.
Module Name:
dbgcs.cxx
Abstract:
Critical Section class
Author:
Steve Kiraly (SteveKi) 30-Mar-1997
Revision History:
--*/ #include "precomp.hxx"
#pragma hdrstop
#include "dbgcs.hxx"
TDebugCriticalSection:: TDebugCriticalSection( VOID ) : m_bValid( FALSE ) { Initialize(); }
TDebugCriticalSection:: ~TDebugCriticalSection( VOID ) { Release(); }
BOOL TDebugCriticalSection:: bValid( VOID ) const { return m_bValid; }
VOID TDebugCriticalSection:: Enter( VOID ) { EnterCriticalSection( &m_CriticalSection ); }
VOID TDebugCriticalSection:: Leave( VOID ) { LeaveCriticalSection( &m_CriticalSection ); }
VOID TDebugCriticalSection:: Initialize( VOID ) { if (!m_bValid) { InitializeCriticalSection( &m_CriticalSection ); m_bValid = TRUE; } }
VOID TDebugCriticalSection:: Release( VOID ) { if (m_bValid) { DeleteCriticalSection( &m_CriticalSection ); m_bValid = FALSE; } }
TDebugCriticalSection::TLock:: TLock( TDebugCriticalSection &CriticalSection ) : m_CriticalSection( CriticalSection ) { m_CriticalSection.Enter(); }
TDebugCriticalSection::TLock:: ~TLock( VOID ) { m_CriticalSection.Leave(); }
TDebugCriticalSection::TUnLock:: TUnLock( TDebugCriticalSection &CriticalSection ) : m_CriticalSection( CriticalSection ) { m_CriticalSection.Leave(); }
TDebugCriticalSection::TUnLock:: ~TUnLock( VOID ) { m_CriticalSection.Enter(); }
|