added auto locker class

This commit is contained in:
Jeff Hill
2000-11-08 04:03:58 +00:00
parent 67c207d352
commit b8f736fac4

View File

@@ -30,6 +30,16 @@ private:
mutable semMutexId id;
};
// Automatically applies and releases the mutex.
// This is for use in situations where C++ exceptions are possible.
class osiAutoMutex {
public:
osiAutoMutex ( osiMutex & );
~osiAutoMutex ();
private:
osiMutex &mutex;
};
inline osiMutex::osiMutex ()
{
this->id = semMutexCreate ();
@@ -94,4 +104,15 @@ inline void osiMutex::show (unsigned level) const
semMutexShow (this->id, level);
}
inline osiAutoMutex::osiAutoMutex ( osiMutex &mutexIn ) :
mutex ( mutexIn )
{
this->mutex.lock ();
}
inline osiAutoMutex::~osiAutoMutex ()
{
this->mutex.unlock ();
}
#endif /* osiMutexh */