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 "CriticalSection.h"
  9. #include "Utils.h"
  10. /* 
  11.  * Member not defined
  12.  * CCriticalSection::CCriticalSection
  13.  * CCriticalSection::operator= 
  14.  * Owner::Owner
  15.  * Owner::operator=
  16.  */
  17. /*
  18.  * namespace OnlineGameLib::Win32
  19.  */
  20. namespace OnlineGameLib {
  21. namespace Win32 {
  22. CCriticalSection::CCriticalSection()
  23. {
  24. ::InitializeCriticalSection( &m_crit );
  25. }
  26.       
  27. CCriticalSection::~CCriticalSection()
  28. {
  29. ::DeleteCriticalSection( &m_crit );
  30. }
  31. void CCriticalSection::Enter()
  32. {
  33. ::EnterCriticalSection( &m_crit );
  34. }
  35. void CCriticalSection::Leave()
  36. {
  37. ::LeaveCriticalSection( &m_crit );
  38. }
  39. ///////////////////////////////////////////////////////////////////////////////
  40. // CCriticalSection::Owner
  41. ///////////////////////////////////////////////////////////////////////////////
  42. CCriticalSection::Owner::Owner(
  43.    CCriticalSection &crit)
  44.    : m_crit(crit)
  45. {
  46. m_crit.Enter();
  47. }
  48. CCriticalSection::Owner::~Owner()
  49. {
  50. m_crit.Leave();
  51. }
  52. } // End of namespace OnlineGameLib
  53. } // End of namespace Win32