Changeset 157413 in webkit for trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h
- Timestamp:
- Oct 14, 2013, 12:34:44 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/runtime/ConcurrentJITLock.h
r153169 r157413 27 27 #define ConcurrentJITLock_h 28 28 29 #include "DeferGC.h" 29 30 #include <wtf/ByteSpinLock.h> 30 31 #include <wtf/NoLock.h> … … 34 35 #if ENABLE(CONCURRENT_JIT) 35 36 typedef ByteSpinLock ConcurrentJITLock; 36 typedef ByteSpinLocker ConcurrentJITLocker ;37 typedef ByteSpinLocker ConcurrentJITLockerImpl; 37 38 #else 38 39 typedef NoLock ConcurrentJITLock; 39 typedef NoLockLocker ConcurrentJITLocker ;40 typedef NoLockLocker ConcurrentJITLockerImpl; 40 41 #endif 42 43 class ConcurrentJITLockerBase { 44 WTF_MAKE_NONCOPYABLE(ConcurrentJITLockerBase); 45 public: 46 explicit ConcurrentJITLockerBase(ConcurrentJITLock& lockable) 47 : m_locker(&lockable) 48 { 49 } 50 explicit ConcurrentJITLockerBase(ConcurrentJITLock* lockable) 51 : m_locker(lockable) 52 { 53 } 54 55 ~ConcurrentJITLockerBase() 56 { 57 } 58 59 void unlockEarly() 60 { 61 m_locker.unlockEarly(); 62 } 63 64 private: 65 ConcurrentJITLockerImpl m_locker; 66 }; 67 68 class GCSafeConcurrentJITLocker : public ConcurrentJITLockerBase { 69 public: 70 GCSafeConcurrentJITLocker(ConcurrentJITLock& lockable, Heap& heap) 71 : ConcurrentJITLockerBase(lockable) 72 , m_deferGC(heap) 73 { 74 } 75 76 GCSafeConcurrentJITLocker(ConcurrentJITLock* lockable, Heap& heap) 77 : ConcurrentJITLockerBase(lockable) 78 , m_deferGC(heap) 79 { 80 } 81 82 private: 83 #if ENABLE(CONCURRENT_JIT) 84 DeferGC m_deferGC; 85 #else 86 struct NoDefer { 87 NoDefer(Heap& heap) : m_heap(heap) { } 88 Heap& m_heap; 89 }; 90 NoDefer m_deferGC; 91 #endif 92 }; 93 94 class ConcurrentJITLocker : public ConcurrentJITLockerBase { 95 public: 96 ConcurrentJITLocker(ConcurrentJITLock& lockable) 97 : ConcurrentJITLockerBase(lockable) 98 { 99 } 100 101 ConcurrentJITLocker(ConcurrentJITLock* lockable) 102 : ConcurrentJITLockerBase(lockable) 103 { 104 } 105 106 #if ENABLE(CONCURRENT_JIT) && !defined(NDEBUG) 107 private: 108 DisallowGC m_disallowGC; 109 #endif 110 }; 41 111 42 112 } // namespace JSC 43 113 44 114 #endif // ConcurrentJITLock_h 45
Note:
See TracChangeset
for help on using the changeset viewer.