src/share/vm/memory/referenceProcessor.hpp

changeset 6397
d60ecdb2773e
parent 6395
a258f8cb530f
child 6719
8e20ef014b08
     1.1 --- a/src/share/vm/memory/referenceProcessor.hpp	Fri Jan 10 09:54:25 2014 +0100
     1.2 +++ b/src/share/vm/memory/referenceProcessor.hpp	Thu Feb 06 14:12:43 2014 +0100
     1.3 @@ -99,6 +99,7 @@
     1.4    oop                _referent;
     1.5    OopClosure*        _keep_alive;
     1.6    BoolObjectClosure* _is_alive;
     1.7 +  bool               _discovered_list_needs_post_barrier;
     1.8  
     1.9    DEBUG_ONLY(
    1.10    oop                _first_seen; // cyclic linked list check
    1.11 @@ -112,7 +113,8 @@
    1.12  public:
    1.13    inline DiscoveredListIterator(DiscoveredList&    refs_list,
    1.14                                  OopClosure*        keep_alive,
    1.15 -                                BoolObjectClosure* is_alive):
    1.16 +                                BoolObjectClosure* is_alive,
    1.17 +                                bool               discovered_list_needs_post_barrier = false):
    1.18      _refs_list(refs_list),
    1.19      _prev_next(refs_list.adr_head()),
    1.20      _prev(NULL),
    1.21 @@ -126,7 +128,8 @@
    1.22  #endif
    1.23      _next(NULL),
    1.24      _keep_alive(keep_alive),
    1.25 -    _is_alive(is_alive)
    1.26 +    _is_alive(is_alive),
    1.27 +    _discovered_list_needs_post_barrier(discovered_list_needs_post_barrier)
    1.28  { }
    1.29  
    1.30    // End Of List.
    1.31 @@ -228,12 +231,12 @@
    1.32    bool        _discovery_is_mt;         // true if reference discovery is MT.
    1.33  
    1.34    // If true, setting "next" field of a discovered refs list requires
    1.35 -  // write barrier(s).  (Must be true if used in a collector in which
    1.36 +  // write post barrier.  (Must be true if used in a collector in which
    1.37    // elements of a discovered list may be moved during discovery: for
    1.38    // example, a collector like Garbage-First that moves objects during a
    1.39    // long-term concurrent marking phase that does weak reference
    1.40    // discovery.)
    1.41 -  bool        _discovered_list_needs_barrier;
    1.42 +  bool        _discovered_list_needs_post_barrier;
    1.43  
    1.44    bool        _enqueuing_is_done;       // true if all weak references enqueued
    1.45    bool        _processing_is_mt;        // true during phases when
    1.46 @@ -380,8 +383,8 @@
    1.47  
    1.48   protected:
    1.49    // Set the 'discovered' field of the given reference to
    1.50 -  // the given value - emitting barriers depending upon
    1.51 -  // the value of _discovered_list_needs_barrier.
    1.52 +  // the given value - emitting post barriers depending upon
    1.53 +  // the value of _discovered_list_needs_post_barrier.
    1.54    void set_discovered(oop ref, oop value);
    1.55  
    1.56    // "Preclean" the given discovered reference list
    1.57 @@ -425,7 +428,7 @@
    1.58                       bool mt_discovery  = false, uint mt_discovery_degree  = 1,
    1.59                       bool atomic_discovery = true,
    1.60                       BoolObjectClosure* is_alive_non_header = NULL,
    1.61 -                     bool discovered_list_needs_barrier = false);
    1.62 +                     bool discovered_list_needs_post_barrier = false);
    1.63  
    1.64    // RefDiscoveryPolicy values
    1.65    enum DiscoveryPolicy {

mercurial