< prev index next >

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

 
 #ifndef SHARE_GC_Z_ZLOCK_INLINE_HPP
 #define SHARE_GC_Z_ZLOCK_INLINE_HPP
 
 #include "gc/z/zLock.hpp"
+#include "runtime/thread.hpp"
 
 inline ZLock::ZLock() {
   pthread_mutex_init(&_lock, NULL);
 }
 
-inline void ZLock::lock() {
-  pthread_mutex_lock(&_lock);
-}
-
-inline bool ZLock::try_lock() {
-  return pthread_mutex_trylock(&_lock) == 0;
-}
-
-inline void ZLock::unlock() {
-  pthread_mutex_unlock(&_lock);
-}
-
 inline ZLocker::ZLocker(ZLock* lock) :
     _lock(lock) {
   _lock->lock();
 }
 
 inline ZLocker::~ZLocker() {
   _lock->unlock();
 }
 
+inline ZReentrantLock::ZReentrantLock() :
+    ZLock(),
+    _owner(NULL) { }
+
+inline bool ZReentrantLock::is_owned() const {
+  return _owner == Thread::current();
+}
+
+inline bool ZReentrantLock::reentrant_lock() {
+  if (is_owned()) {
+    return false;
+  }
+  lock();
+  return true;
+}
+
 #endif // SHARE_GC_Z_ZLOCK_INLINE_HPP
    
< prev index next >