531 532 // Process any reference objects discovered. 533 void process_discovered_references(G1ParScanThreadStateSet* per_thread_states); 534 535 // If during an initial mark pause we may install a pending list head which is not 536 // otherwise reachable ensure that it is marked in the bitmap for concurrent marking 537 // to discover. 538 void make_pending_list_reachable(); 539 540 // Merges the information gathered on a per-thread basis for all worker threads 541 // during GC into global variables. 542 void merge_per_thread_state_info(G1ParScanThreadStateSet* per_thread_states); 543 544 void verify_numa_regions(const char* desc); 545 546 public: 547 G1YoungRemSetSamplingThread* sampling_thread() const { return _young_gen_sampling_thread; } 548 549 WorkGang* workers() const { return _workers; } 550 551 // Runs the given AbstractGangTask with the current active workers, returning the 552 // total time taken. 553 virtual Tickspan run_task(AbstractGangTask* task); 554 555 G1Allocator* allocator() { 556 return _allocator; 557 } 558 559 G1HeapVerifier* verifier() { 560 return _verifier; 561 } 562 563 G1MonitoringSupport* g1mm() { 564 assert(_g1mm != NULL, "should have been initialized"); 565 return _g1mm; 566 } 567 568 void resize_heap_if_necessary(); 569 570 G1NUMA* numa() const { return _numa; } 571 572 // Expand the garbage-first heap by at least the given size (in bytes!). 573 // Returns true if the heap was expanded by the requested amount; | 531 532 // Process any reference objects discovered. 533 void process_discovered_references(G1ParScanThreadStateSet* per_thread_states); 534 535 // If during an initial mark pause we may install a pending list head which is not 536 // otherwise reachable ensure that it is marked in the bitmap for concurrent marking 537 // to discover. 538 void make_pending_list_reachable(); 539 540 // Merges the information gathered on a per-thread basis for all worker threads 541 // during GC into global variables. 542 void merge_per_thread_state_info(G1ParScanThreadStateSet* per_thread_states); 543 544 void verify_numa_regions(const char* desc); 545 546 public: 547 G1YoungRemSetSamplingThread* sampling_thread() const { return _young_gen_sampling_thread; } 548 549 WorkGang* workers() const { return _workers; } 550 551 // Runs the given AbstractGangTask with the current active workers. 552 virtual void run_task(AbstractGangTask* task); 553 554 // Runs the given AbstractGangTask with the current active workers, 555 // returning the total time taken. 556 Tickspan run_task_timed(AbstractGangTask* task); 557 558 G1Allocator* allocator() { 559 return _allocator; 560 } 561 562 G1HeapVerifier* verifier() { 563 return _verifier; 564 } 565 566 G1MonitoringSupport* g1mm() { 567 assert(_g1mm != NULL, "should have been initialized"); 568 return _g1mm; 569 } 570 571 void resize_heap_if_necessary(); 572 573 G1NUMA* numa() const { return _numa; } 574 575 // Expand the garbage-first heap by at least the given size (in bytes!). 576 // Returns true if the heap was expanded by the requested amount; |