hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp
changeset 6768 71338ecb7813
parent 5547 f4b087cbb361
child 7397 5b173b4ca846
--- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp	Fri Oct 01 21:48:40 2010 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp	Fri Oct 01 16:43:05 2010 -0400
@@ -29,7 +29,12 @@
 class ObjPtrQueue: public PtrQueue {
 public:
   ObjPtrQueue(PtrQueueSet* qset_, bool perm = false) :
-    PtrQueue(qset_, perm, qset_->is_active()) { }
+    // SATB queues are only active during marking cycles. We create
+    // them with their active field set to false. If a thread is
+    // created during a cycle and its SATB queue needs to be activated
+    // before the thread starts running, we'll need to set its active
+    // field to true. This is done in JavaThread::initialize_queues().
+    PtrQueue(qset_, perm, false /* active */) { }
   // Apply the closure to all elements, and reset the index to make the
   // buffer empty.
   void apply_closure(ObjectClosure* cl);