};
/**
-Locks the mutex for te lifetime of the object.
+Locks the mutex for the lifetime of the object.
*/
class MutexLock
{
private:
Mutex &mutex;
+ MutexLock(const MutexLock &);
public:
MutexLock(Mutex &m, bool l = true): mutex(m) { if(l) mutex.lock(); }
~MutexLock() { mutex.unlock(); }
void lock() { mutex.lock(); }
-private:
- MutexLock(const MutexLock &);
- MutexLock &operator=(const MutexLock &);
};
/**
template<typename T>
class MutexPtr
{
+private:
+ RefPtr<MutexLock> mutex;
+ T *data;
+
public:
MutexPtr(T *d, Mutex &m): mutex(new MutexLock(m)), data(d) { }
T &operator*() const { return *data; }
T *operator->() const { return data; }
- void clear() { mutex=0; data = 0; }
-private:
- RefPtr<MutexLock> mutex;
- T *data;
+ void clear() { mutex = 0; data = 0; }
};
}