< prev index next >

src/hotspot/share/gc/z/zLock.inline.hpp

Print this page




  63   assert(is_owned(), "Invalid owner");
  64   assert(_count > 0, "Invalid count");
  65 
  66   _count--;
  67 
  68   if (_count == 0) {
  69     Atomic::store((Thread*)NULL, &_owner);
  70     _lock.unlock();
  71   }
  72 }
  73 
  74 inline bool ZReentrantLock::is_owned() const {
  75   Thread* const thread = Thread::current();
  76   Thread* const owner = Atomic::load(&_owner);
  77   return owner == thread;
  78 }
  79 
  80 template <typename T>
  81 inline ZLocker<T>::ZLocker(T* lock) :
  82     _lock(lock) {
  83   _lock->lock();


  84 }
  85 
  86 template <typename T>
  87 inline ZLocker<T>::~ZLocker() {
  88   _lock->unlock();


  89 }
  90 
  91 #endif // SHARE_GC_Z_ZLOCK_INLINE_HPP


  63   assert(is_owned(), "Invalid owner");
  64   assert(_count > 0, "Invalid count");
  65 
  66   _count--;
  67 
  68   if (_count == 0) {
  69     Atomic::store((Thread*)NULL, &_owner);
  70     _lock.unlock();
  71   }
  72 }
  73 
  74 inline bool ZReentrantLock::is_owned() const {
  75   Thread* const thread = Thread::current();
  76   Thread* const owner = Atomic::load(&_owner);
  77   return owner == thread;
  78 }
  79 
  80 template <typename T>
  81 inline ZLocker<T>::ZLocker(T* lock) :
  82     _lock(lock) {
  83   if (_lock != NULL) {
  84     _lock->lock();
  85   }
  86 }
  87 
  88 template <typename T>
  89 inline ZLocker<T>::~ZLocker() {
  90   if (_lock != NULL) {
  91     _lock->unlock();
  92   }
  93 }
  94 
  95 #endif // SHARE_GC_Z_ZLOCK_INLINE_HPP
< prev index next >