Mercurial > hg > truffle
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, |