1 /*
2 * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
40 class ParallelTaskTerminator;
41 class MutableSpace;
42 class PSOldGen;
43 class Thread;
44 class VMThread;
45
46 //
47 // ScavengeRootsTask
48 //
49 // This task scans all the roots of a given type.
50 //
51 //
52
53 class ScavengeRootsTask : public GCTask {
54 public:
55 enum RootType {
56 universe = 1,
57 jni_handles = 2,
58 threads = 3,
59 object_synchronizer = 4,
60 flat_profiler = 5,
61 system_dictionary = 6,
62 class_loader_data = 7,
63 management = 8,
64 jvmti = 9,
65 code_cache = 10
66 };
67 private:
68 RootType _root_type;
69 public:
70 ScavengeRootsTask(RootType value) : _root_type(value) {}
71
72 char* name() { return (char *)"scavenge-roots-task"; }
73
74 virtual void do_it(GCTaskManager* manager, uint which);
75 };
76
77 //
78 // ThreadRootsTask
79 //
80 // This task scans the roots of a single thread. This task
81 // enables scanning of thread roots in parallel.
82 //
83
84 class ThreadRootsTask : public GCTask {
85 private:
|
1 /*
2 * Copyright (c) 2002, 2017, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
40 class ParallelTaskTerminator;
41 class MutableSpace;
42 class PSOldGen;
43 class Thread;
44 class VMThread;
45
46 //
47 // ScavengeRootsTask
48 //
49 // This task scans all the roots of a given type.
50 //
51 //
52
53 class ScavengeRootsTask : public GCTask {
54 public:
55 enum RootType {
56 universe = 1,
57 jni_handles = 2,
58 threads = 3,
59 object_synchronizer = 4,
60 system_dictionary = 5,
61 class_loader_data = 6,
62 management = 7,
63 jvmti = 8,
64 code_cache = 9
65 };
66 private:
67 RootType _root_type;
68 public:
69 ScavengeRootsTask(RootType value) : _root_type(value) {}
70
71 char* name() { return (char *)"scavenge-roots-task"; }
72
73 virtual void do_it(GCTaskManager* manager, uint which);
74 };
75
76 //
77 // ThreadRootsTask
78 //
79 // This task scans the roots of a single thread. This task
80 // enables scanning of thread roots in parallel.
81 //
82
83 class ThreadRootsTask : public GCTask {
84 private:
|