< prev index next >

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

Print this page




 494   // failed allocation request (including collection, expansion, etc.)
 495   HeapWord* satisfy_failed_allocation(size_t word_size,
 496                                       AllocationContext_t context,
 497                                       bool* succeeded);
 498 private:
 499   // Helper method for satisfy_failed_allocation()
 500   HeapWord* satisfy_failed_allocation_helper(size_t word_size,
 501                                              AllocationContext_t context,
 502                                              bool do_gc,
 503                                              bool clear_all_soft_refs,
 504                                              bool expect_null_mutator_alloc_region,
 505                                              bool* gc_succeeded);
 506 
 507 protected:
 508   // Attempting to expand the heap sufficiently
 509   // to support an allocation of the given "word_size".  If
 510   // successful, perform the allocation and return the address of the
 511   // allocated block, or else "NULL".
 512   HeapWord* expand_and_allocate(size_t word_size, AllocationContext_t context);
 513 



 514   // Process any reference objects discovered during
 515   // an incremental evacuation pause.
 516   void process_discovered_references(G1ParScanThreadStateSet* per_thread_states);
 517 
 518   // Enqueue any remaining discovered references
 519   // after processing.
 520   void enqueue_discovered_references(G1ParScanThreadStateSet* per_thread_states);
 521 



 522 public:
 523   WorkGang* workers() const { return _workers; }
 524 
 525   G1Allocator* allocator() {
 526     return _allocator;
 527   }
 528 
 529   G1HeapVerifier* verifier() {
 530     return _verifier;
 531   }
 532 
 533   G1MonitoringSupport* g1mm() {
 534     assert(_g1mm != NULL, "should have been initialized");
 535     return _g1mm;
 536   }
 537 
 538   // Expand the garbage-first heap by at least the given size (in bytes!).
 539   // Returns true if the heap was expanded by the requested amount;
 540   // false otherwise.
 541   // (Rounds up to a HeapRegion boundary.)




 494   // failed allocation request (including collection, expansion, etc.)
 495   HeapWord* satisfy_failed_allocation(size_t word_size,
 496                                       AllocationContext_t context,
 497                                       bool* succeeded);
 498 private:
 499   // Helper method for satisfy_failed_allocation()
 500   HeapWord* satisfy_failed_allocation_helper(size_t word_size,
 501                                              AllocationContext_t context,
 502                                              bool do_gc,
 503                                              bool clear_all_soft_refs,
 504                                              bool expect_null_mutator_alloc_region,
 505                                              bool* gc_succeeded);
 506 
 507 protected:
 508   // Attempting to expand the heap sufficiently
 509   // to support an allocation of the given "word_size".  If
 510   // successful, perform the allocation and return the address of the
 511   // allocated block, or else "NULL".
 512   HeapWord* expand_and_allocate(size_t word_size, AllocationContext_t context);
 513 
 514   // Preserve any referents discovered by concurrent marking that have not yet been
 515   // copied by the STW pause.
 516   void preserve_cm_referents(G1ParScanThreadStateSet* per_thread_states);
 517   // Process any reference objects discovered during
 518   // an incremental evacuation pause.
 519   void process_discovered_references(G1ParScanThreadStateSet* per_thread_states);
 520 
 521   // Enqueue any remaining discovered references
 522   // after processing.
 523   void enqueue_discovered_references(G1ParScanThreadStateSet* per_thread_states);
 524 
 525   // Merges the information gathered on a per-thread basis for all worker threads
 526   // during GC into global variables.
 527   void merge_per_thread_state_info(G1ParScanThreadStateSet* per_thread_states);
 528 public:
 529   WorkGang* workers() const { return _workers; }
 530 
 531   G1Allocator* allocator() {
 532     return _allocator;
 533   }
 534 
 535   G1HeapVerifier* verifier() {
 536     return _verifier;
 537   }
 538 
 539   G1MonitoringSupport* g1mm() {
 540     assert(_g1mm != NULL, "should have been initialized");
 541     return _g1mm;
 542   }
 543 
 544   // Expand the garbage-first heap by at least the given size (in bytes!).
 545   // Returns true if the heap was expanded by the requested amount;
 546   // false otherwise.
 547   // (Rounds up to a HeapRegion boundary.)


< prev index next >