Changeset 10574 in orxonox.OLD for branches/cleanup/src/lib/util/threads/threading.h
- Timestamp:
- Feb 7, 2007, 9:21:02 PM (17 years ago)
- Location:
- branches/cleanup/src/lib/util/threads
- Files:
-
- 1 added
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/cleanup/src/lib/util/threads/threading.h
r10569 r10574 9 9 #define _THREADING_H 10 10 11 #ifdef HAVE_SDL_H 12 #include <SDL_thread.h> 13 #else 14 #include <SDL/SDL_thread.h> 15 #endif 16 17 namespace OrxThread 18 { 19 //! A class for Wrapping Threads 20 class Thread 21 { 22 public: 23 Thread(int (*fn)(void *), void *data) { this->thread = SDL_CreateThread(fn, data); }; 24 virtual ~Thread() { SDL_KillThread(this->thread); } 25 void exit ( int returnCode = 0 ); 26 bool isFinished () const; 27 bool isRunning () const; 28 void wait() { SDL_WaitThread(this->thread, NULL); }; 29 30 void start(); 31 void terminate(); 11 #include "thread.h" 12 #include "mutex.h" 13 #include "mutex_locker.h" 32 14 33 15 34 private:35 SDL_Thread* thread;36 37 };38 39 class Mutex40 {41 public:42 Mutex() { this->mutex = SDL_CreateMutex(); };43 ~Mutex() { SDL_DestroyMutex(this->mutex); }44 45 void lock() { SDL_mutexP(mutex); };46 void unlock() { SDL_mutexV(mutex); };47 48 SDL_mutex* getMutex() const { return this->mutex; };49 private:50 SDL_mutex* mutex;51 };52 53 //! A Class that locks a Mutex within its scope54 class MutexLock55 {56 public:57 //! Locks the Mutex mutex in this Scope.58 MutexLock(Mutex* mutex) { SDL_mutexP(mutex->getMutex()); this->mutex = mutex; };59 ~MutexLock() { SDL_mutexV(mutex->getMutex()); };60 private:61 Mutex* mutex; //!< The Mutex to lock.62 };63 }64 16 65 17 #endif /* _THREADING_H */
Note: See TracChangeset
for help on using the changeset viewer.