Added SetTo() methods to the AutoLocker.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4221 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2003-08-03 18:28:11 +00:00
parent cc6edbdf8f
commit f31cbc2db6
@@ -155,18 +155,30 @@ public:
_Unlock(); _Unlock();
} }
inline AutoLocker<Lockable, Locking> &operator=(Lockable *lockable) inline void SetTo(Lockable *lockable, bool alreadyLocked)
{ {
_Unlock(); _Unlock();
fLockable = lockable; fLockable = lockable;
fLocked = alreadyLocked;
if (!fLocked)
_Lock(); _Lock();
} }
inline void SetTo(Lockable &lockable, bool alreadyLocked)
{
SetTo(&lockable, alreadyLocked);
}
inline AutoLocker<Lockable, Locking> &operator=(Lockable *lockable)
{
SetTo(lockable);
return *this;
}
inline AutoLocker<Lockable, Locking> &operator=(Lockable &lockable) inline AutoLocker<Lockable, Locking> &operator=(Lockable &lockable)
{ {
_Unlock(); SetTo(&lockable);
fLockable = &lockable; return *this;
_Lock();
} }
inline bool IsLocked() const { return fLocked; } inline bool IsLocked() const { return fLocked; }