494 // fails, it retires the current alloc region (if there is one), |
494 // fails, it retires the current alloc region (if there is one), |
495 // tries to get a new one and retries the allocation. |
495 // tries to get a new one and retries the allocation. |
496 inline HeapWord* attempt_allocation(size_t word_size); |
496 inline HeapWord* attempt_allocation(size_t word_size); |
497 |
497 |
498 // It assumes that the current alloc region has been retired and |
498 // It assumes that the current alloc region has been retired and |
499 // tries to allocate a new one. If it's successful, it performs |
499 // tries to allocate a new one. If it's successful, it performs the |
500 // the allocation out of the new current alloc region and updates |
500 // allocation out of the new current alloc region and updates |
501 // _cur_alloc_region. |
501 // _cur_alloc_region. Normally, it would try to allocate a new |
|
502 // region if the young gen is not full, unless can_expand is true in |
|
503 // which case it would always try to allocate a new region. |
502 HeapWord* replace_cur_alloc_region_and_allocate(size_t word_size, |
504 HeapWord* replace_cur_alloc_region_and_allocate(size_t word_size, |
503 bool at_safepoint, |
505 bool at_safepoint, |
504 bool do_dirtying); |
506 bool do_dirtying, |
|
507 bool can_expand); |
505 |
508 |
506 // The slow path when we are unable to allocate a new current alloc |
509 // The slow path when we are unable to allocate a new current alloc |
507 // region to satisfy an allocation request (i.e., when |
510 // region to satisfy an allocation request (i.e., when |
508 // attempt_allocation() fails). It will try to do an evacuation |
511 // attempt_allocation() fails). It will try to do an evacuation |
509 // pause, which might stall due to the GC locker, and retry the |
512 // pause, which might stall due to the GC locker, and retry the |