< 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 >