CriticalSection.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. /********************************************************************
  2. created: 2003/02/13
  3. file base: CriticalSection
  4. file ext: cpp
  5. author: liupeng
  6. purpose:
  7. *********************************************************************/
  8. #include "stdafx.h"
  9. #include "CriticalSection.h"
  10. #include "Utils.h"
  11. /*
  12.  * namespace OnlineGameLib::Win32
  13.  */
  14. namespace OnlineGameLib {
  15. namespace Win32 {
  16. CCriticalSection::CCriticalSection()
  17. {
  18. ::InitializeCriticalSection( &m_crit );
  19. }
  20.       
  21. CCriticalSection::~CCriticalSection()
  22. {
  23. ::DeleteCriticalSection( &m_crit );
  24. }
  25. #if ( _WIN32_WINNT >= 0x0400 )
  26. bool CCriticalSection::TryEnter()
  27. {
  28. return BOOL_to_bool( ::TryEnterCriticalSection( &m_crit ) );
  29. }
  30. #endif
  31. /*
  32.  * CCriticalSection::Owner
  33.  */
  34. CCriticalSection::Owner::Owner( CCriticalSection &crit )
  35. : m_crit( crit )
  36. {
  37. m_crit.Enter();
  38. }
  39. CCriticalSection::Owner::~Owner()
  40. {
  41. m_crit.Leave();
  42. }
  43.       
  44. } // End of namespace OnlineGameLib
  45. } // End of namespace Win32