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 */