annotate Mutex.h @ 51:c1e4f706ca9a

Fix numpy version incompatibility issues and updated some example plugins.
author fazekasgy
date Thu, 08 Oct 2009 08:47:28 +0000
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