Mercurial > hg > truffle
comparison src/share/vm/memory/referenceProcessor.hpp @ 20804:7848fc12602b
Merge with jdk8u40-b25
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 14:58:49 +0200 |
parents | 52b4284cb496 c2844108a708 |
children |
comparison
equal
deleted
inserted
replaced
20184:84105dcdb05b | 20804:7848fc12602b |
---|---|
23 */ | 23 */ |
24 | 24 |
25 #ifndef SHARE_VM_MEMORY_REFERENCEPROCESSOR_HPP | 25 #ifndef SHARE_VM_MEMORY_REFERENCEPROCESSOR_HPP |
26 #define SHARE_VM_MEMORY_REFERENCEPROCESSOR_HPP | 26 #define SHARE_VM_MEMORY_REFERENCEPROCESSOR_HPP |
27 | 27 |
28 #include "gc_implementation/shared/gcTrace.hpp" | |
28 #include "memory/referencePolicy.hpp" | 29 #include "memory/referencePolicy.hpp" |
29 #include "memory/referenceProcessorStats.hpp" | 30 #include "memory/referenceProcessorStats.hpp" |
30 #include "memory/referenceType.hpp" | 31 #include "memory/referenceType.hpp" |
31 #include "oops/instanceRefKlass.hpp" | 32 #include "oops/instanceRefKlass.hpp" |
32 | 33 |
261 // Arrays of lists of oops, one per thread (pointers into master array above) | 262 // Arrays of lists of oops, one per thread (pointers into master array above) |
262 DiscoveredList* _discoveredSoftRefs; | 263 DiscoveredList* _discoveredSoftRefs; |
263 DiscoveredList* _discoveredWeakRefs; | 264 DiscoveredList* _discoveredWeakRefs; |
264 DiscoveredList* _discoveredFinalRefs; | 265 DiscoveredList* _discoveredFinalRefs; |
265 DiscoveredList* _discoveredPhantomRefs; | 266 DiscoveredList* _discoveredPhantomRefs; |
266 | 267 DiscoveredList* _discoveredCleanerRefs; |
267 public: | 268 |
268 static int number_of_subclasses_of_ref() { return (REF_PHANTOM - REF_OTHER); } | 269 public: |
270 static int number_of_subclasses_of_ref() { return (REF_CLEANER - REF_OTHER); } | |
269 | 271 |
270 uint num_q() { return _num_q; } | 272 uint num_q() { return _num_q; } |
271 uint max_num_q() { return _max_num_q; } | 273 uint max_num_q() { return _max_num_q; } |
272 void set_active_mt_degree(uint v) { _num_q = v; } | 274 void set_active_mt_degree(uint v) { _num_q = v; } |
273 | 275 |
347 // only used by the CMS collector. | 349 // only used by the CMS collector. |
348 void preclean_discovered_references(BoolObjectClosure* is_alive, | 350 void preclean_discovered_references(BoolObjectClosure* is_alive, |
349 OopClosure* keep_alive, | 351 OopClosure* keep_alive, |
350 VoidClosure* complete_gc, | 352 VoidClosure* complete_gc, |
351 YieldClosure* yield, | 353 YieldClosure* yield, |
352 GCTimer* gc_timer); | 354 GCTimer* gc_timer, |
355 GCId gc_id); | |
353 | 356 |
354 // Delete entries in the discovered lists that have | 357 // Delete entries in the discovered lists that have |
355 // either a null referent or are not active. Such | 358 // either a null referent or are not active. Such |
356 // Reference objects can result from the clearing | 359 // Reference objects can result from the clearing |
357 // or enqueueing of Reference objects concurrent | 360 // or enqueueing of Reference objects concurrent |
478 ReferenceProcessorStats | 481 ReferenceProcessorStats |
479 process_discovered_references(BoolObjectClosure* is_alive, | 482 process_discovered_references(BoolObjectClosure* is_alive, |
480 OopClosure* keep_alive, | 483 OopClosure* keep_alive, |
481 VoidClosure* complete_gc, | 484 VoidClosure* complete_gc, |
482 AbstractRefProcTaskExecutor* task_executor, | 485 AbstractRefProcTaskExecutor* task_executor, |
483 GCTimer *gc_timer); | 486 GCTimer *gc_timer, |
487 GCId gc_id); | |
484 | 488 |
485 // Enqueue references at end of GC (called by the garbage collector) | 489 // Enqueue references at end of GC (called by the garbage collector) |
486 bool enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL); | 490 bool enqueue_discovered_references(AbstractRefProcTaskExecutor* task_executor = NULL); |
487 | 491 |
488 // If a discovery is in process that is being superceded, abandon it: all | 492 // If a discovery is in process that is being superceded, abandon it: all |