dhmutex.h 504 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #ifndef DHMUTEX_H
  2. #define DHMUTEX_H
  3. #ifdef WIN32
  4. #include <windows.h>
  5. class CCSLock
  6. {
  7. public:
  8. CCSLock(CRITICAL_SECTION& cs):m_cs(cs)
  9. {
  10. EnterCriticalSection(&m_cs);
  11. }
  12. ~CCSLock()
  13. {
  14. LeaveCriticalSection(&m_cs);
  15. }
  16. private:
  17. CRITICAL_SECTION& m_cs;
  18. };
  19. #else
  20. #include <pthread.h>
  21. #endif
  22. class DHMutex
  23. {
  24. public:
  25. DHMutex();
  26. ~DHMutex();
  27. int Lock();
  28. int UnLock();
  29. private:
  30. #ifdef WIN32
  31. CRITICAL_SECTION m_critclSection;
  32. #else
  33. pthread_mutex_t m_mutex;
  34. #endif
  35. };
  36. #endif