35 void lock(); 36 bool try_lock(); 37 void unlock(); 38 }; 39 40 class ZReentrantLock { 41 private: 42 ZLock _lock; 43 Thread* volatile _owner; 44 uint64_t _count; 45 46 public: 47 ZReentrantLock(); 48 49 void lock(); 50 void unlock(); 51 52 bool is_owned() const; 53 }; 54 55 template <typename T> 56 class ZLocker : public StackObj { 57 private: 58 T* const _lock; 59 60 public: 61 ZLocker(T* lock); 62 ~ZLocker(); 63 }; 64 65 #endif // SHARE_GC_Z_ZLOCK_HPP | 35 void lock(); 36 bool try_lock(); 37 void unlock(); 38 }; 39 40 class ZReentrantLock { 41 private: 42 ZLock _lock; 43 Thread* volatile _owner; 44 uint64_t _count; 45 46 public: 47 ZReentrantLock(); 48 49 void lock(); 50 void unlock(); 51 52 bool is_owned() const; 53 }; 54 55 class ZNoLock { 56 public: 57 void lock(); 58 bool try_lock(); 59 void unlock(); 60 }; 61 62 template <typename T> 63 class ZLocker : public StackObj { 64 private: 65 T* const _lock; 66 67 public: 68 ZLocker(T* lock); 69 ~ZLocker(); 70 }; 71 72 #endif // SHARE_GC_Z_ZLOCK_HPP |