comparison src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp @ 5188:5afc5a089c2c

8014555: G1: Memory ordering problem with Conc refinement and card marking Summary: Add a StoreLoad barrier in the G1 post-barrier to fix a race with concurrent refinement. Reviewed-by: brutisso, tschatzl, roland
author mgerdin
date Tue, 08 Oct 2013 17:35:51 +0200
parents f95d63e2154a
children 935f879e4eb0
comparison
equal deleted inserted replaced
7:92449f460fb8 8:5a9c185d96b9
30 30
31 class FreeIdSet; 31 class FreeIdSet;
32 32
33 // A closure class for processing card table entries. Note that we don't 33 // A closure class for processing card table entries. Note that we don't
34 // require these closure objects to be stack-allocated. 34 // require these closure objects to be stack-allocated.
35 class CardTableEntryClosure: public CHeapObj { 35 class CardTableEntryClosure: public CHeapObj<mtGC> {
36 public: 36 public:
37 // Process the card whose card table entry is "card_ptr". If returns 37 // Process the card whose card table entry is "card_ptr". If returns
38 // "false", terminate the iteration early. 38 // "false", terminate the iteration early.
39 virtual bool do_card_ptr(jbyte* card_ptr, int worker_i = 0) = 0; 39 virtual bool do_card_ptr(jbyte* card_ptr, int worker_i = 0) = 0;
40 }; 40 };