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 */
23
24 #ifndef SHARE_GC_Z_ZMARK_HPP
25 #define SHARE_GC_Z_ZMARK_HPP
26
27 #include "gc/z/zMarkStack.hpp"
28 #include "gc/z/zMarkTerminate.hpp"
29 #include "oops/oopsHierarchy.hpp"
30 #include "utilities/globalDefinitions.hpp"
31
32 class Thread;
33 class ZMarkCache;
34 class ZPageTable;
35 class ZWorkers;
36
37 class ZMark VALUE_OBJ_CLASS_SPEC {
38 friend class ZMarkRootsTask;
39 friend class ZMarkTask;
40 friend class ZMarkTryCompleteTask;
41
42 private:
43 ZWorkers* const _workers;
44 ZPageTable* const _pagetable;
45 ZMarkStackAllocator _allocator;
46 ZMarkStripeSet _stripes;
47 ZMarkTerminate _terminate;
48 volatile bool _work_terminateflush;
49 volatile size_t _work_nproactiveflush;
50 volatile size_t _work_nterminateflush;
51 size_t _nproactiveflush;
52 size_t _nterminateflush;
53 size_t _ntrycomplete;
54 size_t _ncontinue;
55 uint _nworkers;
56
57 size_t calculate_nstripes(uint nworkers) const;
|
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 */
23
24 #ifndef SHARE_GC_Z_ZMARK_HPP
25 #define SHARE_GC_Z_ZMARK_HPP
26
27 #include "gc/z/zMarkStack.hpp"
28 #include "gc/z/zMarkTerminate.hpp"
29 #include "oops/oopsHierarchy.hpp"
30 #include "utilities/globalDefinitions.hpp"
31
32 class Thread;
33 class ZMarkCache;
34 class ZPageTable;
35 class ZWorkers;
36
37 class ZMark {
38 friend class ZMarkRootsTask;
39 friend class ZMarkTask;
40 friend class ZMarkTryCompleteTask;
41
42 private:
43 ZWorkers* const _workers;
44 ZPageTable* const _pagetable;
45 ZMarkStackAllocator _allocator;
46 ZMarkStripeSet _stripes;
47 ZMarkTerminate _terminate;
48 volatile bool _work_terminateflush;
49 volatile size_t _work_nproactiveflush;
50 volatile size_t _work_nterminateflush;
51 size_t _nproactiveflush;
52 size_t _nterminateflush;
53 size_t _ntrycomplete;
54 size_t _ncontinue;
55 uint _nworkers;
56
57 size_t calculate_nstripes(uint nworkers) const;
|