diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2009-07-31 11:52:57 +1000 |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2009-07-31 11:52:57 +1000 |
commit | aa9cf406d62004519ad54596e1c391f9a6439210 (patch) | |
tree | dd562b9c296981f2761b76623911be8496c7af84 /src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h | |
parent | 987aec28b950e1c9817a20a9dd71afc071cd93ea (diff) | |
parent | 56b6a5924008ab5cdbae36e9662eddba923acd5e (diff) |
Merge branch 'master' of git@scm.dev.nokia.troll.no:qt/qt
Diffstat (limited to 'src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h')
-rw-r--r-- | src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h b/src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h index 3dde35894..8b015c4c8 100644 --- a/src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/JSLock.h @@ -50,50 +50,52 @@ namespace JSC { class ExecState; - class JSLock : Noncopyable { + enum JSLockBehavior { SilenceAssertionsOnly, LockForReal }; + + class JSLock : public Noncopyable { public: JSLock(ExecState*); - JSLock(bool lockingForReal) - : m_lockingForReal(lockingForReal) + JSLock(JSLockBehavior lockBehavior) + : m_lockBehavior(lockBehavior) { #ifdef NDEBUG // Locking "not for real" is a debug-only feature. - if (!lockingForReal) + if (lockBehavior == SilenceAssertionsOnly) return; #endif - lock(lockingForReal); + lock(lockBehavior); } ~JSLock() { #ifdef NDEBUG // Locking "not for real" is a debug-only feature. - if (!m_lockingForReal) + if (m_lockBehavior == SilenceAssertionsOnly) return; #endif - unlock(m_lockingForReal); + unlock(m_lockBehavior); } - static void lock(bool); - static void unlock(bool); + static void lock(JSLockBehavior); + static void unlock(JSLockBehavior); static void lock(ExecState*); static void unlock(ExecState*); static intptr_t lockCount(); static bool currentThreadIsHoldingLock(); - bool m_lockingForReal; + JSLockBehavior m_lockBehavior; - class DropAllLocks : Noncopyable { + class DropAllLocks : public Noncopyable { public: DropAllLocks(ExecState* exec); - DropAllLocks(bool); + DropAllLocks(JSLockBehavior); ~DropAllLocks(); private: intptr_t m_lockCount; - bool m_lockingForReal; + JSLockBehavior m_lockBehavior; }; }; |