/mordor/semaphore.h
C Header | 45 lines | 34 code | 10 blank | 1 comment | 0 complexity | ef4d9d329166de08e2c64ce059e746cd MD5 | raw file
Possible License(s): BSD-3-Clause
- #ifndef __MORDOR_SEMAPHORE_H__
- #define __MORDOR_SEMAPHORE_H__
- // Copyright (c) 2009 - Mozy, Inc.
- #include "version.h"
- #include <boost/noncopyable.hpp>
- #ifdef WINDOWS
- #include <windows.h>
- #elif defined(OSX)
- #include <mach/semaphore.h>
- #elif defined(FREEBSD)
- #else
- #include <semaphore.h>
- #endif
- namespace Mordor {
- class Semaphore : boost::noncopyable
- {
- public:
- Semaphore(unsigned int count = 0);
- ~Semaphore();
- void wait();
- void notify();
- private:
- #ifdef WINDOWS
- HANDLE m_semaphore;
- #elif defined(OSX)
- task_t m_task;
- semaphore_t m_semaphore;
- #elif defined(FREEBSD)
- int m_semaphore;
- #else
- sem_t m_semaphore;
- #endif
- };
- }
- #endif