From 382ef632d7e965e09e1b2787a7175e8b672dc717 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sun, 14 May 2006 14:30:25 +0000 Subject: [PATCH] Forgot to include this file in the previous commit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17454 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/graphics/intel_extreme/lock.h | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/headers/private/graphics/intel_extreme/lock.h b/headers/private/graphics/intel_extreme/lock.h index 3c11f24c02..52263eb59f 100644 --- a/headers/private/graphics/intel_extreme/lock.h +++ b/headers/private/graphics/intel_extreme/lock.h @@ -54,4 +54,31 @@ release_lock(struct lock *lock) return B_OK; } + +class Autolock { + public: + Autolock(struct lock &lock) + : + fLock(&lock) + { + fStatus = acquire_lock(fLock); + } + + ~Autolock() + { + if (fStatus == B_OK) + release_lock(fLock); + } + + bool + IsLocked() + { + return fStatus == B_OK; + } + + private: + status_t fStatus; + struct lock *fLock; +}; + #endif /* LOCK_H */