--- old/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp 2017-11-20 12:09:40.652636993 +0100 +++ new/src/hotspot/share/gc/g1/g1ConcurrentRefine.hpp 2017-11-20 12:09:40.245624636 +0100 @@ -38,15 +38,19 @@ // Helper class for refinement thread management. Used to start, stop and // iterate over them. class G1ConcurrentRefineThreadControl VALUE_OBJ_CLASS_SPEC { - G1ConcurrentRefine* _cg1r; + G1ConcurrentRefine* _cr; G1ConcurrentRefineThread** _threads; uint _num_max_threads; + + // Create the refinement thread for the given worker id. + // If initializing is true, ignore InjectGCWorkerCreationFailure. + G1ConcurrentRefineThread* create_refinement_thread(uint worker_id, bool initializing); public: G1ConcurrentRefineThreadControl(); ~G1ConcurrentRefineThreadControl(); - void initialize(G1ConcurrentRefine* cg1r, uint num_max_threads); + jint initialize(G1ConcurrentRefine* cr, uint num_max_threads); // If there is a "successor" thread that can be activated given the current id, // activate it. @@ -101,6 +105,7 @@ static uint worker_id_offset(); void maybe_activate_more_threads(uint worker_id, size_t num_cur_buffers); + jint initialize(); public: ~G1ConcurrentRefine();