src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File nmethods-gc-ps Cdiff src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp

src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 48,58 **** void ScavengeRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); ! PSScavengeRootsClosure roots_closure(pm); switch (_root_type) { case universe: Universe::oops_do(&roots_closure); break; --- 48,59 ---- void ScavengeRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); ! PSScavengeRootsClosure</*promote_immediately=*/false> roots_closure(pm); ! PSScavengeRootsClosure</*promote_immediately=*/true> roots_to_old_closure(pm); switch (_root_type) { case universe: Universe::oops_do(&roots_closure); break;
*** 89,99 **** break; case code_cache: { ! CodeBlobToOopClosure each_scavengable_code_blob(&roots_closure, /*do_marking=*/ true); CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); } break; default: --- 90,100 ---- break; case code_cache: { ! CodeBlobToOopClosure each_scavengable_code_blob(&roots_to_old_closure, /*do_marking=*/ true); CodeCache::scavenge_root_nmethods_do(&each_scavengable_code_blob); } break; default:
*** 110,120 **** void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); ! PSScavengeRootsClosure roots_closure(pm); CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); if (_java_thread != NULL) _java_thread->oops_do(&roots_closure, &roots_in_blobs); --- 111,121 ---- void ThreadRootsTask::do_it(GCTaskManager* manager, uint which) { assert(Universe::heap()->is_gc_active(), "called outside gc"); PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(which); ! PSScavengeRootsClosure</*promote_immediately=*/false> roots_closure(pm); CodeBlobToOopClosure roots_in_blobs(&roots_closure, /*do_marking=*/ true); if (_java_thread != NULL) _java_thread->oops_do(&roots_closure, &roots_in_blobs);
src/share/vm/gc_implementation/parallelScavenge/psTasks.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File