< prev index next >
src/share/vm/runtime/thread.hpp
Print this page
rev 12906 : [mq]: gc_interface
@@ -1005,20 +1005,17 @@
} _jmp_ring[jump_ring_buffer_size];
#endif // PRODUCT
#if INCLUDE_ALL_GCS
// Support for G1 barriers
-
+private:
SATBMarkQueue _satb_mark_queue; // Thread-local log for SATB barrier.
- // Set of all such queues.
- static SATBMarkQueueSet _satb_mark_queue_set;
-
DirtyCardQueue _dirty_card_queue; // Thread-local log for dirty cards.
- // Set of all such queues.
- static DirtyCardQueueSet _dirty_card_queue_set;
- void flush_barrier_queues();
+public:
+ SATBMarkQueue& satb_mark_queue() { return _satb_mark_queue; }
+ DirtyCardQueue& dirty_card_queue() { return _dirty_card_queue; }
#endif // INCLUDE_ALL_GCS
friend class VMThread;
friend class ThreadWaitTransition;
friend class VM_Exit;
@@ -1872,47 +1869,10 @@
}
static inline void set_stack_size_at_create(size_t value) {
_stack_size_at_create = value;
}
-#if INCLUDE_ALL_GCS
- // SATB marking queue support
- SATBMarkQueue& satb_mark_queue() { return _satb_mark_queue; }
- static SATBMarkQueueSet& satb_mark_queue_set() {
- return _satb_mark_queue_set;
- }
-
- // Dirty card queue support
- DirtyCardQueue& dirty_card_queue() { return _dirty_card_queue; }
- static DirtyCardQueueSet& dirty_card_queue_set() {
- return _dirty_card_queue_set;
- }
-#endif // INCLUDE_ALL_GCS
-
- // This method initializes the SATB and dirty card queues before a
- // JavaThread is added to the Java thread list. Right now, we don't
- // have to do anything to the dirty card queue (it should have been
- // activated when the thread was created), but we have to activate
- // the SATB queue if the thread is created while a marking cycle is
- // in progress. The activation / de-activation of the SATB queues at
- // the beginning / end of a marking cycle is done during safepoints
- // so we have to make sure this method is called outside one to be
- // able to safely read the active field of the SATB queue set. Right
- // now, it is called just before the thread is added to the Java
- // thread list in the Threads::add() method. That method is holding
- // the Threads_lock which ensures we are outside a safepoint. We
- // cannot do the obvious and set the active field of the SATB queue
- // when the thread is created given that, in some cases, safepoints
- // might happen between the JavaThread constructor being called and the
- // thread being added to the Java thread list (an example of this is
- // when the structure for the DestroyJavaVM thread is created).
-#if INCLUDE_ALL_GCS
- void initialize_queues();
-#else // INCLUDE_ALL_GCS
- void initialize_queues() { }
-#endif // INCLUDE_ALL_GCS
-
// Machine dependent stuff
#include OS_CPU_HEADER(thread)
public:
void set_blocked_on_compilation(bool value) {
< prev index next >