< prev index next >
src/share/vm/memory/universe.hpp
Print this page
rev 11747 : [mq]: per.hotspot.patch
rev 11748 : imported patch pop_pl
@@ -183,10 +183,13 @@
// the vm thread.
static oop _vm_exception;
static oop _allocation_context_notification_obj;
+ // References waiting to be transferred to the ReferenceHandler
+ static oop _reference_pending_list;
+
// The particular choice of collected heap.
static CollectedHeap* _collectedHeap;
static intptr_t _non_oop_bits;
@@ -332,10 +335,21 @@
static oop vm_exception() { return _vm_exception; }
static inline oop allocation_context_notification_obj();
static inline void set_allocation_context_notification_obj(oop obj);
+ // Reference pending list manipulation. Access is protected by
+ // Heap_lock. The getter, setter and predicate require the caller
+ // owns the lock. Swap is used by parallel non-concurrent reference
+ // processing threads, where some higher level controller owns
+ // Heap_lock, so requires the lock is locked, but not necessarily by
+ // the current thread.
+ static oop reference_pending_list();
+ static void set_reference_pending_list(oop list);
+ static bool has_reference_pending_list();
+ static oop swap_reference_pending_list(oop list);
+
static Array<int>* the_empty_int_array() { return _the_empty_int_array; }
static Array<u2>* the_empty_short_array() { return _the_empty_short_array; }
static Array<Method*>* the_empty_method_array() { return _the_empty_method_array; }
static Array<Klass*>* the_empty_klass_array() { return _the_empty_klass_array; }
< prev index next >