< prev index next >

src/share/vm/gc/g1/g1AllocRegion.hpp

Print this page

        

*** 32,52 **** class G1CollectedHeap; // 0 -> no tracing, 1 -> basic tracing, 2 -> basic + allocation tracing #define G1_ALLOC_REGION_TRACING 0 - class ar_ext_msg; - // A class that holds a region that is active in satisfying allocation // requests, potentially issued in parallel. When the active region is // full it will be retired and replaced with a new one. The // implementation assumes that fast-path allocations will be lock-free // and a lock will need to be taken when the active region needs to be // replaced. class G1AllocRegion VALUE_OBJ_CLASS_SPEC { - friend class ar_ext_msg; private: // The active allocating region we are currently allocating out // of. The invariant is that if this object is initialized (i.e., // init() has been called and release() has not) then _alloc_region --- 32,49 ----
*** 129,140 **** // allocation. The force parameter will be passed on to // G1CollectedHeap::allocate_new_alloc_region() and tells it to try // to allocate a new region even if the max has been reached. HeapWord* new_alloc_region_and_allocate(size_t word_size, bool force); - void fill_in_ext_msg(ar_ext_msg* msg, const char* message); - protected: // Retire the active allocating region. If fill_up is true then make // sure that the region is full before we retire it so that no one // else can allocate out of it. // Returns the number of bytes that have been filled up during retire. --- 126,135 ----
*** 276,288 **** // last card in the retained old gc alloc region, and allocation threads // allocating into that card at the same time. virtual HeapRegion* release(); }; - class ar_ext_msg : public err_msg { - public: - ar_ext_msg(G1AllocRegion* alloc_region, const char *message) : err_msg("%s", "") { - alloc_region->fill_in_ext_msg(this, message); - } - }; - #endif // SHARE_VM_GC_G1_G1ALLOCREGION_HPP --- 271,276 ----
< prev index next >