Mercurial > hg > vampy
annotate Mutex.h @ 79:f5c028376bf9
Some old changes that, I think, probably did not help anything
author | Chris Cannam |
---|---|
date | Wed, 12 Aug 2015 15:25:04 +0100 |
parents | 27bab3a16c9a |
children |
rev | line source |
---|---|
fazekasgy@37 | 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ |
fazekasgy@37 | 2 |
fazekasgy@37 | 3 /* |
fazekasgy@37 | 4 Basic cross-platform mutex abstraction class. |
fazekasgy@37 | 5 This file copyright 2007 Chris Cannam. |
fazekasgy@37 | 6 */ |
fazekasgy@37 | 7 |
fazekasgy@37 | 8 #ifndef _MUTEX_H_ |
fazekasgy@37 | 9 #define _MUTEX_H_ |
fazekasgy@37 | 10 |
fazekasgy@37 | 11 #ifdef _WIN32 |
fazekasgy@37 | 12 #include <windows.h> |
fazekasgy@37 | 13 #else |
fazekasgy@37 | 14 #include <pthread.h> |
fazekasgy@37 | 15 #endif |
fazekasgy@37 | 16 |
fazekasgy@37 | 17 class Mutex |
fazekasgy@37 | 18 { |
fazekasgy@37 | 19 public: |
fazekasgy@37 | 20 Mutex(); |
fazekasgy@37 | 21 ~Mutex(); |
fazekasgy@37 | 22 |
fazekasgy@37 | 23 void lock(); |
fazekasgy@37 | 24 void unlock(); |
fazekasgy@37 | 25 bool trylock(); |
fazekasgy@37 | 26 |
fazekasgy@37 | 27 private: |
fazekasgy@37 | 28 #ifdef _WIN32 |
fazekasgy@37 | 29 HANDLE m_mutex; |
fazekasgy@37 | 30 #ifndef NO_THREAD_CHECKS |
fazekasgy@37 | 31 DWORD m_lockedBy; |
fazekasgy@37 | 32 #endif |
fazekasgy@37 | 33 #else |
fazekasgy@37 | 34 pthread_mutex_t m_mutex; |
fazekasgy@37 | 35 #ifndef NO_THREAD_CHECKS |
fazekasgy@37 | 36 pthread_t m_lockedBy; |
fazekasgy@37 | 37 bool m_locked; |
fazekasgy@37 | 38 #endif |
fazekasgy@37 | 39 #endif |
fazekasgy@37 | 40 }; |
fazekasgy@37 | 41 |
fazekasgy@37 | 42 class MutexLocker |
fazekasgy@37 | 43 { |
fazekasgy@37 | 44 public: |
fazekasgy@37 | 45 MutexLocker(Mutex *); |
fazekasgy@37 | 46 ~MutexLocker(); |
fazekasgy@37 | 47 |
fazekasgy@37 | 48 private: |
fazekasgy@37 | 49 Mutex *m_mutex; |
fazekasgy@37 | 50 }; |
fazekasgy@37 | 51 |
fazekasgy@37 | 52 #endif |
fazekasgy@37 | 53 |