< prev index next >

src/hotspot/share/gc/shenandoah/shenandoahHeap.inline.hpp

Print this page




 355 inline bool ShenandoahHeap::is_gc_in_progress_mask(uint mask) const {
 356   return _gc_state.is_set(mask);
 357 }
 358 
 359 inline bool ShenandoahHeap::is_degenerated_gc_in_progress() const {
 360   return _degenerated_gc_in_progress.is_set();
 361 }
 362 
 363 inline bool ShenandoahHeap::is_full_gc_in_progress() const {
 364   return _full_gc_in_progress.is_set();
 365 }
 366 
 367 inline bool ShenandoahHeap::is_full_gc_move_in_progress() const {
 368   return _full_gc_move_in_progress.is_set();
 369 }
 370 
 371 inline bool ShenandoahHeap::is_update_refs_in_progress() const {
 372   return _gc_state.is_set(UPDATEREFS);
 373 }
 374 








 375 template<class T>
 376 inline void ShenandoahHeap::marked_object_iterate(ShenandoahHeapRegion* region, T* cl) {
 377   marked_object_iterate(region, cl, region->top());
 378 }
 379 
 380 template<class T>
 381 inline void ShenandoahHeap::marked_object_iterate(ShenandoahHeapRegion* region, T* cl, HeapWord* limit) {
 382   assert(! region->is_humongous_continuation(), "no humongous continuation regions here");
 383 
 384   ShenandoahMarkingContext* const ctx = complete_marking_context();
 385   assert(ctx->is_complete(), "sanity");
 386 
 387   MarkBitMap* mark_bit_map = ctx->mark_bit_map();
 388   HeapWord* tams = ctx->top_at_mark_start(region);
 389 
 390   size_t skip_bitmap_delta = 1;
 391   HeapWord* start = region->bottom();
 392   HeapWord* end = MIN2(tams, region->end());
 393 
 394   // Step 1. Scan below the TAMS based on bitmap data.




 355 inline bool ShenandoahHeap::is_gc_in_progress_mask(uint mask) const {
 356   return _gc_state.is_set(mask);
 357 }
 358 
 359 inline bool ShenandoahHeap::is_degenerated_gc_in_progress() const {
 360   return _degenerated_gc_in_progress.is_set();
 361 }
 362 
 363 inline bool ShenandoahHeap::is_full_gc_in_progress() const {
 364   return _full_gc_in_progress.is_set();
 365 }
 366 
 367 inline bool ShenandoahHeap::is_full_gc_move_in_progress() const {
 368   return _full_gc_move_in_progress.is_set();
 369 }
 370 
 371 inline bool ShenandoahHeap::is_update_refs_in_progress() const {
 372   return _gc_state.is_set(UPDATEREFS);
 373 }
 374 
 375 inline bool ShenandoahHeap::is_stw_gc_in_progress() const {
 376   return is_full_gc_in_progress() || is_degenerated_gc_in_progress();
 377 }
 378 
 379 inline bool ShenandoahHeap::is_concurrent_root_in_progress() const {
 380   return _concurrent_root_in_progress.is_set();
 381 }
 382 
 383 template<class T>
 384 inline void ShenandoahHeap::marked_object_iterate(ShenandoahHeapRegion* region, T* cl) {
 385   marked_object_iterate(region, cl, region->top());
 386 }
 387 
 388 template<class T>
 389 inline void ShenandoahHeap::marked_object_iterate(ShenandoahHeapRegion* region, T* cl, HeapWord* limit) {
 390   assert(! region->is_humongous_continuation(), "no humongous continuation regions here");
 391 
 392   ShenandoahMarkingContext* const ctx = complete_marking_context();
 393   assert(ctx->is_complete(), "sanity");
 394 
 395   MarkBitMap* mark_bit_map = ctx->mark_bit_map();
 396   HeapWord* tams = ctx->top_at_mark_start(region);
 397 
 398   size_t skip_bitmap_delta = 1;
 399   HeapWord* start = region->bottom();
 400   HeapWord* end = MIN2(tams, region->end());
 401 
 402   // Step 1. Scan below the TAMS based on bitmap data.


< prev index next >