From a3ff5c056145296c4d146648c7d722931b9919f8 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Tue, 24 Mar 2009 23:09:49 +0000 Subject: [PATCH] * Added missing inclusion of . * Added AutoLocker constructor with the locking strategy as parameter. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29685 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/shared/AutoLocker.h | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/headers/private/shared/AutoLocker.h b/headers/private/shared/AutoLocker.h index f6c487e5cd..95fa4c496b 100644 --- a/headers/private/shared/AutoLocker.h +++ b/headers/private/shared/AutoLocker.h @@ -6,6 +6,9 @@ #define _AUTO_LOCKER_H +#include + + namespace BPrivate { // AutoLockerStandardLocking @@ -61,15 +64,25 @@ private: typedef AutoLocker ThisClass; public: inline AutoLocker() - : fLockable(NULL), - fLocked(false) + : + fLockable(NULL), + fLocked(false) + { + } + + inline AutoLocker(const Locking& locking) + : + fLockable(NULL), + fLocking(locking), + fLocked(false) { } inline AutoLocker(Lockable *lockable, bool alreadyLocked = false, bool lockIfNotLocked = true) - : fLockable(lockable), - fLocked(fLockable && alreadyLocked) + : + fLockable(lockable), + fLocked(fLockable && alreadyLocked) { if (!alreadyLocked && lockIfNotLocked) Lock(); @@ -77,8 +90,9 @@ public: inline AutoLocker(Lockable &lockable, bool alreadyLocked = false, bool lockIfNotLocked = true) - : fLockable(&lockable), - fLocked(fLockable && alreadyLocked) + : + fLockable(&lockable), + fLocked(fLockable && alreadyLocked) { if (!alreadyLocked && lockIfNotLocked) Lock(); @@ -150,8 +164,8 @@ public: protected: Lockable *fLockable; - bool fLocked; Locking fLocking; + bool fLocked; };