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:
@@ -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; }
|
||||||
|
|||||||
Reference in New Issue
Block a user