#ifndef _SEM_LOCK_ #define _SEM_LOCK_ #include #include #include class SemLock { sem_t& sem_; public: inline SemLock( sem_t& sem ) : sem_( sem ) { sem_wait( &sem_ ); } inline ~SemLock() { sem_post( &sem_ ); } inline int Lock() { return sem_wait( &sem_ ); } inline int Unlock() { return sem_post( &sem_ ); } }; #endif