1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Wed Jun 27 15:23:36 2012 +0200 1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Thu Jun 28 17:03:16 2012 -0400 1.3 @@ -41,7 +41,7 @@ 1.4 class ParallelCompactData; 1.5 class ParMarkBitMap; 1.6 1.7 -class ParCompactionManager : public CHeapObj { 1.8 +class ParCompactionManager : public CHeapObj<mtGC> { 1.9 friend class ParallelTaskTerminator; 1.10 friend class ParMarkBitMap; 1.11 friend class PSParallelCompact; 1.12 @@ -66,8 +66,8 @@ 1.13 private: 1.14 // 32-bit: 4K * 8 = 32KiB; 64-bit: 8K * 16 = 128KiB 1.15 #define QUEUE_SIZE (1 << NOT_LP64(12) LP64_ONLY(13)) 1.16 - typedef OverflowTaskQueue<ObjArrayTask, QUEUE_SIZE> ObjArrayTaskQueue; 1.17 - typedef GenericTaskQueueSet<ObjArrayTaskQueue> ObjArrayTaskQueueSet; 1.18 + typedef OverflowTaskQueue<ObjArrayTask, mtGC, QUEUE_SIZE> ObjArrayTaskQueue; 1.19 + typedef GenericTaskQueueSet<ObjArrayTaskQueue, mtGC> ObjArrayTaskQueueSet; 1.20 #undef QUEUE_SIZE 1.21 1.22 static ParCompactionManager** _manager_array; 1.23 @@ -78,7 +78,7 @@ 1.24 static PSOldGen* _old_gen; 1.25 1.26 private: 1.27 - OverflowTaskQueue<oop> _marking_stack; 1.28 + OverflowTaskQueue<oop, mtGC> _marking_stack; 1.29 ObjArrayTaskQueue _objarray_stack; 1.30 1.31 // Is there a way to reuse the _marking_stack for the 1.32 @@ -110,8 +110,8 @@ 1.33 // popped. If -1, there has not been any entry popped. 1.34 static int _recycled_bottom; 1.35 1.36 - Stack<Klass*> _revisit_klass_stack; 1.37 - Stack<DataLayout*> _revisit_mdo_stack; 1.38 + Stack<Klass*, mtGC> _revisit_klass_stack; 1.39 + Stack<DataLayout*, mtGC> _revisit_mdo_stack; 1.40 1.41 static ParMarkBitMap* _mark_bitmap; 1.42 1.43 @@ -126,7 +126,7 @@ 1.44 protected: 1.45 // Array of tasks. Needed by the ParallelTaskTerminator. 1.46 static RegionTaskQueueSet* region_array() { return _region_array; } 1.47 - OverflowTaskQueue<oop>* marking_stack() { return &_marking_stack; } 1.48 + OverflowTaskQueue<oop, mtGC>* marking_stack() { return &_marking_stack; } 1.49 1.50 // Pushes onto the marking stack. If the marking stack is full, 1.51 // pushes onto the overflow stack. 1.52 @@ -175,8 +175,8 @@ 1.53 bool should_update(); 1.54 bool should_copy(); 1.55 1.56 - Stack<Klass*>* revisit_klass_stack() { return &_revisit_klass_stack; } 1.57 - Stack<DataLayout*>* revisit_mdo_stack() { return &_revisit_mdo_stack; } 1.58 + Stack<Klass*, mtGC>* revisit_klass_stack() { return &_revisit_klass_stack; } 1.59 + Stack<DataLayout*, mtGC>* revisit_mdo_stack() { return &_revisit_mdo_stack; } 1.60 1.61 // Save for later processing. Must not fail. 1.62 inline void push(oop obj) { _marking_stack.push(obj); }