diff -r 59f226da8d81 -r 70fb742e40aa hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp --- a/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp Mon Jul 07 10:12:40 2014 +0200 +++ b/hotspot/src/share/vm/gc_implementation/g1/satbQueue.hpp Mon Jul 07 12:37:11 2014 +0200 @@ -33,9 +33,7 @@ // A ptrQueue whose elements are "oops", pointers to object heads. class ObjPtrQueue: public PtrQueue { - friend class Threads; friend class SATBMarkQueueSet; - friend class G1RemarkThreadsClosure; private: // Filter out unwanted entries from the buffer. @@ -121,6 +119,13 @@ // closures, one for each parallel GC thread. void set_par_closure(int i, ObjectClosure* closure); + // Apply the registered closure to all entries on each + // currently-active buffer and then empty the buffer. It should only + // be called serially and at a safepoint. + void iterate_closure_all_threads(); + // Parallel version of the above. + void par_iterate_closure_all_threads(uint worker); + // If there exists some completed buffer, pop it, then apply the // registered closure to all its elements, and return true. If no // completed buffers exist, return false.