25 #define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
26
27 #include "gc/shared/taskqueue.hpp"
28 #include "memory/allocation.hpp"
29 #include "utilities/stack.hpp"
30
31 class MutableSpace;
32 class PSOldGen;
33 class ParCompactionManager;
34 class ObjectStartArray;
35 class ParallelCompactData;
36 class ParMarkBitMap;
37
38 class ParCompactionManager : public CHeapObj<mtGC> {
39 friend class ParallelTaskTerminator;
40 friend class ParMarkBitMap;
41 friend class PSParallelCompact;
42 friend class CompactionWithStealingTask;
43 friend class UpdateAndFillClosure;
44 friend class RefProcTaskExecutor;
45 friend class IdleGCTask;
46
47 public:
48
49 // ------------------------ Don't putback if not needed
50 // Actions that the compaction manager should take.
51 enum Action {
52 Update,
53 Copy,
54 UpdateAndCopy,
55 CopyAndUpdate,
56 NotValid
57 };
58 // ------------------------ End don't putback if not needed
59
60 private:
61 // 32-bit: 4K * 8 = 32KiB; 64-bit: 8K * 16 = 128KiB
62 #define QUEUE_SIZE (1 << NOT_LP64(12) LP64_ONLY(13))
63 typedef OverflowTaskQueue<ObjArrayTask, mtGC, QUEUE_SIZE> ObjArrayTaskQueue;
64 typedef GenericTaskQueueSet<ObjArrayTaskQueue, mtGC> ObjArrayTaskQueueSet;
|
25 #define SHARE_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
26
27 #include "gc/shared/taskqueue.hpp"
28 #include "memory/allocation.hpp"
29 #include "utilities/stack.hpp"
30
31 class MutableSpace;
32 class PSOldGen;
33 class ParCompactionManager;
34 class ObjectStartArray;
35 class ParallelCompactData;
36 class ParMarkBitMap;
37
38 class ParCompactionManager : public CHeapObj<mtGC> {
39 friend class ParallelTaskTerminator;
40 friend class ParMarkBitMap;
41 friend class PSParallelCompact;
42 friend class CompactionWithStealingTask;
43 friend class UpdateAndFillClosure;
44 friend class RefProcTaskExecutor;
45 friend class PCRefProcTask;
46 friend class MarkFromRootsTask;
47 friend class UpdateDensePrefixAndCompactionTask;
48
49 public:
50
51 // ------------------------ Don't putback if not needed
52 // Actions that the compaction manager should take.
53 enum Action {
54 Update,
55 Copy,
56 UpdateAndCopy,
57 CopyAndUpdate,
58 NotValid
59 };
60 // ------------------------ End don't putback if not needed
61
62 private:
63 // 32-bit: 4K * 8 = 32KiB; 64-bit: 8K * 16 = 128KiB
64 #define QUEUE_SIZE (1 << NOT_LP64(12) LP64_ONLY(13))
65 typedef OverflowTaskQueue<ObjArrayTask, mtGC, QUEUE_SIZE> ObjArrayTaskQueue;
66 typedef GenericTaskQueueSet<ObjArrayTaskQueue, mtGC> ObjArrayTaskQueueSet;
|