< prev index next >

src/hotspot/share/gc/parallel/psCompactionManager.hpp

Print this page




 179    private:
 180     ParCompactionManager* _compaction_manager;
 181    public:
 182     MarkAndPushClosure(ParCompactionManager* cm) : _compaction_manager(cm) { }
 183 
 184     template <typename T> void do_oop_nv(T* p);
 185     virtual void do_oop(oop* p);
 186     virtual void do_oop(narrowOop* p);
 187 
 188     // This closure provides its own oop verification code.
 189     debug_only(virtual bool should_verify_oops() { return false; })
 190   };
 191 
 192   class FollowStackClosure: public VoidClosure {
 193    private:
 194     ParCompactionManager* _compaction_manager;
 195    public:
 196     FollowStackClosure(ParCompactionManager* cm) : _compaction_manager(cm) { }
 197     virtual void do_void();
 198   };
 199 
 200   // The one and only place to start following the classes.
 201   // Should only be applied to the ClassLoaderData klasses list.
 202   class FollowKlassClosure : public KlassClosure {
 203    private:
 204     MarkAndPushClosure* _mark_and_push_closure;
 205    public:
 206     FollowKlassClosure(MarkAndPushClosure* mark_and_push_closure) :
 207         _mark_and_push_closure(mark_and_push_closure) { }
 208     void do_klass(Klass* klass);
 209   };
 210 };
 211 
 212 inline ParCompactionManager* ParCompactionManager::manager_array(uint index) {
 213   assert(_manager_array != NULL, "access of NULL manager_array");
 214   assert(index <= ParallelGCThreads, "out of range manager_array access");
 215   return _manager_array[index];
 216 }
 217 
 218 bool ParCompactionManager::marking_stacks_empty() const {
 219   return _marking_stack.is_empty() && _objarray_stack.is_empty();
 220 }
 221 
 222 #endif // SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP


 179    private:
 180     ParCompactionManager* _compaction_manager;
 181    public:
 182     MarkAndPushClosure(ParCompactionManager* cm) : _compaction_manager(cm) { }
 183 
 184     template <typename T> void do_oop_nv(T* p);
 185     virtual void do_oop(oop* p);
 186     virtual void do_oop(narrowOop* p);
 187 
 188     // This closure provides its own oop verification code.
 189     debug_only(virtual bool should_verify_oops() { return false; })
 190   };
 191 
 192   class FollowStackClosure: public VoidClosure {
 193    private:
 194     ParCompactionManager* _compaction_manager;
 195    public:
 196     FollowStackClosure(ParCompactionManager* cm) : _compaction_manager(cm) { }
 197     virtual void do_void();
 198   };











 199 };
 200 
 201 inline ParCompactionManager* ParCompactionManager::manager_array(uint index) {
 202   assert(_manager_array != NULL, "access of NULL manager_array");
 203   assert(index <= ParallelGCThreads, "out of range manager_array access");
 204   return _manager_array[index];
 205 }
 206 
 207 bool ParCompactionManager::marking_stacks_empty() const {
 208   return _marking_stack.is_empty() && _objarray_stack.is_empty();
 209 }
 210 
 211 #endif // SHARE_VM_GC_PARALLEL_PSCOMPACTIONMANAGER_HPP
< prev index next >