81
82 //
83 // MarkFromRootsTask
84 //
85 // This task marks from all the roots to all live
86 // objects.
87 //
88 //
89
90 class MarkFromRootsTask : public GCTask {
91 public:
92 enum RootType {
93 universe = 1,
94 jni_handles = 2,
95 threads = 3,
96 object_synchronizer = 4,
97 flat_profiler = 5,
98 management = 6,
99 jvmti = 7,
100 system_dictionary = 8,
101 code_cache = 9
102 };
103 private:
104 RootType _root_type;
105 public:
106 MarkFromRootsTask(RootType value) : _root_type(value) {}
107
108 char* name() { return (char *)"mark-from-roots-task"; }
109
110 virtual void do_it(GCTaskManager* manager, uint which);
111 };
112
113 //
114 // RefProcTaskProxy
115 //
116 // This task is used as a proxy to parallel reference processing tasks .
117 //
118
119 class RefProcTaskProxy : public GCTask {
120 typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask;
121 ProcessTask & _rp_task;
|
81
82 //
83 // MarkFromRootsTask
84 //
85 // This task marks from all the roots to all live
86 // objects.
87 //
88 //
89
90 class MarkFromRootsTask : public GCTask {
91 public:
92 enum RootType {
93 universe = 1,
94 jni_handles = 2,
95 threads = 3,
96 object_synchronizer = 4,
97 flat_profiler = 5,
98 management = 6,
99 jvmti = 7,
100 system_dictionary = 8,
101 class_loader_data = 9,
102 code_cache = 10
103 };
104 private:
105 RootType _root_type;
106 public:
107 MarkFromRootsTask(RootType value) : _root_type(value) {}
108
109 char* name() { return (char *)"mark-from-roots-task"; }
110
111 virtual void do_it(GCTaskManager* manager, uint which);
112 };
113
114 //
115 // RefProcTaskProxy
116 //
117 // This task is used as a proxy to parallel reference processing tasks .
118 //
119
120 class RefProcTaskProxy : public GCTask {
121 typedef AbstractRefProcTaskExecutor::ProcessTask ProcessTask;
122 ProcessTask & _rp_task;
|