comparison src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp @ 342:37f87013dfd8

6711316: Open source the Garbage-First garbage collector Summary: First mercurial integration of the code for the Garbage-First garbage collector. Reviewed-by: apetrusenko, iveresov, jmasa, sgoldman, tonyp, ysr
author ysr
date Thu, 05 Jun 2008 15:57:56 -0700
parents b5489bb705c9
children 1ee8caae33af
comparison
equal deleted inserted replaced
189:0b27f3512f9e 342:37f87013dfd8
1323 MarkFromRootsClosure(CMSCollector* collector, MemRegion span, 1323 MarkFromRootsClosure(CMSCollector* collector, MemRegion span,
1324 CMSBitMap* bitMap, 1324 CMSBitMap* bitMap,
1325 CMSMarkStack* markStack, 1325 CMSMarkStack* markStack,
1326 CMSMarkStack* revisitStack, 1326 CMSMarkStack* revisitStack,
1327 bool should_yield, bool verifying = false); 1327 bool should_yield, bool verifying = false);
1328 void do_bit(size_t offset); 1328 bool do_bit(size_t offset);
1329 void reset(HeapWord* addr); 1329 void reset(HeapWord* addr);
1330 inline void do_yield_check(); 1330 inline void do_yield_check();
1331 1331
1332 private: 1332 private:
1333 void scanOopsInOop(HeapWord* ptr); 1333 void scanOopsInOop(HeapWord* ptr);
1359 CMSBitMap* bit_map, 1359 CMSBitMap* bit_map,
1360 OopTaskQueue* work_queue, 1360 OopTaskQueue* work_queue,
1361 CMSMarkStack* overflow_stack, 1361 CMSMarkStack* overflow_stack,
1362 CMSMarkStack* revisit_stack, 1362 CMSMarkStack* revisit_stack,
1363 bool should_yield); 1363 bool should_yield);
1364 void do_bit(size_t offset); 1364 bool do_bit(size_t offset);
1365 inline void do_yield_check(); 1365 inline void do_yield_check();
1366 1366
1367 private: 1367 private:
1368 void scan_oops_in_oop(HeapWord* ptr); 1368 void scan_oops_in_oop(HeapWord* ptr);
1369 void do_yield_work(); 1369 void do_yield_work();
1407 public: 1407 public:
1408 MarkFromRootsVerifyClosure(CMSCollector* collector, MemRegion span, 1408 MarkFromRootsVerifyClosure(CMSCollector* collector, MemRegion span,
1409 CMSBitMap* verification_bm, 1409 CMSBitMap* verification_bm,
1410 CMSBitMap* cms_bm, 1410 CMSBitMap* cms_bm,
1411 CMSMarkStack* mark_stack); 1411 CMSMarkStack* mark_stack);
1412 void do_bit(size_t offset); 1412 bool do_bit(size_t offset);
1413 void reset(HeapWord* addr); 1413 void reset(HeapWord* addr);
1414 }; 1414 };
1415 1415
1416 1416
1417 // This closure is used to check that a certain set of bits is 1417 // This closure is used to check that a certain set of bits is
1418 // "empty" (i.e. the bit vector doesn't have any 1-bits). 1418 // "empty" (i.e. the bit vector doesn't have any 1-bits).
1419 class FalseBitMapClosure: public BitMapClosure { 1419 class FalseBitMapClosure: public BitMapClosure {
1420 public: 1420 public:
1421 void do_bit(size_t offset) { 1421 bool do_bit(size_t offset) {
1422 guarantee(false, "Should not have a 1 bit"); 1422 guarantee(false, "Should not have a 1 bit");
1423 return true;
1423 } 1424 }
1424 }; 1425 };
1425 1426
1426 // This closure is used during the second checkpointing phase 1427 // This closure is used during the second checkpointing phase
1427 // to rescan the marked objects on the dirty cards in the mod 1428 // to rescan the marked objects on the dirty cards in the mod