comparison src/share/vm/memory/referenceProcessor.hpp @ 17746:a258f8cb530f

8029255: G1: Reference processing should not enqueue references on the shared SATB queue Reviewed-by: brutisso, tschatzl
author pliden
date Fri, 10 Jan 2014 09:53:53 +0100
parents f2110083203d
children 63a4eb8bcd23 d60ecdb2773e
comparison
equal deleted inserted replaced
17745:c96e9c8adb81 17746:a258f8cb530f
233 // example, a collector like Garbage-First that moves objects during a 233 // example, a collector like Garbage-First that moves objects during a
234 // long-term concurrent marking phase that does weak reference 234 // long-term concurrent marking phase that does weak reference
235 // discovery.) 235 // discovery.)
236 bool _discovered_list_needs_barrier; 236 bool _discovered_list_needs_barrier;
237 237
238 BarrierSet* _bs; // Cached copy of BarrierSet.
239 bool _enqueuing_is_done; // true if all weak references enqueued 238 bool _enqueuing_is_done; // true if all weak references enqueued
240 bool _processing_is_mt; // true during phases when 239 bool _processing_is_mt; // true during phases when
241 // reference processing is MT. 240 // reference processing is MT.
242 uint _next_id; // round-robin mod _num_q counter in 241 uint _next_id; // round-robin mod _num_q counter in
243 // support of work distribution 242 // support of work distribution
418 417
419 // Update (advance) the soft ref master clock field. 418 // Update (advance) the soft ref master clock field.
420 void update_soft_ref_master_clock(); 419 void update_soft_ref_master_clock();
421 420
422 public: 421 public:
423 // constructor
424 ReferenceProcessor():
425 _span((HeapWord*)NULL, (HeapWord*)NULL),
426 _discovered_refs(NULL),
427 _discoveredSoftRefs(NULL), _discoveredWeakRefs(NULL),
428 _discoveredFinalRefs(NULL), _discoveredPhantomRefs(NULL),
429 _discovering_refs(false),
430 _discovery_is_atomic(true),
431 _enqueuing_is_done(false),
432 _discovery_is_mt(false),
433 _discovered_list_needs_barrier(false),
434 _bs(NULL),
435 _is_alive_non_header(NULL),
436 _num_q(0),
437 _max_num_q(0),
438 _processing_is_mt(false),
439 _next_id(0)
440 { }
441
442 // Default parameters give you a vanilla reference processor. 422 // Default parameters give you a vanilla reference processor.
443 ReferenceProcessor(MemRegion span, 423 ReferenceProcessor(MemRegion span,
444 bool mt_processing = false, uint mt_processing_degree = 1, 424 bool mt_processing = false, uint mt_processing_degree = 1,
445 bool mt_discovery = false, uint mt_discovery_degree = 1, 425 bool mt_discovery = false, uint mt_discovery_degree = 1,
446 bool atomic_discovery = true, 426 bool atomic_discovery = true,