equal
deleted
inserted
replaced
21 * questions. |
21 * questions. |
22 * |
22 * |
23 */ |
23 */ |
24 |
24 |
25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
|
26 #include "classfile/stringTable.hpp" |
26 #include "gc/cms/cmsHeap.inline.hpp" |
27 #include "gc/cms/cmsHeap.inline.hpp" |
27 #include "gc/cms/compactibleFreeListSpace.hpp" |
28 #include "gc/cms/compactibleFreeListSpace.hpp" |
28 #include "gc/cms/concurrentMarkSweepGeneration.hpp" |
29 #include "gc/cms/concurrentMarkSweepGeneration.hpp" |
29 #include "gc/cms/parNewGeneration.inline.hpp" |
30 #include "gc/cms/parNewGeneration.inline.hpp" |
30 #include "gc/cms/parOopClosures.inline.hpp" |
31 #include "gc/cms/parOopClosures.inline.hpp" |
587 StrongRootsScope* strong_roots_scope) : |
588 StrongRootsScope* strong_roots_scope) : |
588 AbstractGangTask("ParNewGeneration collection"), |
589 AbstractGangTask("ParNewGeneration collection"), |
589 _young_gen(young_gen), _old_gen(old_gen), |
590 _young_gen(young_gen), _old_gen(old_gen), |
590 _young_old_boundary(young_old_boundary), |
591 _young_old_boundary(young_old_boundary), |
591 _state_set(state_set), |
592 _state_set(state_set), |
592 _strong_roots_scope(strong_roots_scope) |
593 _strong_roots_scope(strong_roots_scope), |
|
594 _par_state_string(StringTable::weak_storage()) |
593 {} |
595 {} |
594 |
596 |
595 void ParNewGenTask::work(uint worker_id) { |
597 void ParNewGenTask::work(uint worker_id) { |
596 CMSHeap* heap = CMSHeap::heap(); |
598 CMSHeap* heap = CMSHeap::heap(); |
597 // Since this is being done in a separate thread, need new resource |
599 // Since this is being done in a separate thread, need new resource |
609 |
611 |
610 par_scan_state.start_strong_roots(); |
612 par_scan_state.start_strong_roots(); |
611 heap->young_process_roots(_strong_roots_scope, |
613 heap->young_process_roots(_strong_roots_scope, |
612 &par_scan_state.to_space_root_closure(), |
614 &par_scan_state.to_space_root_closure(), |
613 &par_scan_state.older_gen_closure(), |
615 &par_scan_state.older_gen_closure(), |
614 &cld_scan_closure); |
616 &cld_scan_closure, |
|
617 &_par_state_string); |
615 |
618 |
616 par_scan_state.end_strong_roots(); |
619 par_scan_state.end_strong_roots(); |
617 |
620 |
618 // "evacuate followers". |
621 // "evacuate followers". |
619 par_scan_state.evacuate_followers_closure().do_void(); |
622 par_scan_state.evacuate_followers_closure().do_void(); |