< prev index next >

src/share/vm/gc/shared/referencePendingListLocker.hpp

Print this page

        

@@ -63,10 +63,21 @@
 
   void lock();
   void unlock();
 };
 
+class ReferencePendingListLockerFromJava VALUE_OBJ_CLASS_SPEC {
+private:
+  BasicLock _basic_lock;
+
+public:
+  static bool is_locked_by_self();
+
+  void lock();
+  void unlock();
+};
+
 //
 // The ReferencePendingListLocker is the main interface for locking and
 // unlocking the reference pending list lock, which needs to be held by
 // the GC when adding references to the pending list. Since this is a
 // Java-level monitor it can only be locked/unlocked by a Java thread.

@@ -78,11 +89,11 @@
 //
 class ReferencePendingListLocker VALUE_OBJ_CLASS_SPEC {
 private:
   static bool                              _is_initialized;
   static ReferencePendingListLockerThread* _locker_thread;
-  BasicLock                                _basic_lock;
+  ReferencePendingListLockerFromJava       _locker;
 
 public:
   static void initialize(bool needs_locker_thread, TRAPS);
   static bool is_initialized();
 
< prev index next >