-
Enhancement
-
Resolution: Fixed
-
P4
-
None
-
master
This method is the allocation entry API for mutators. Its flow is the following
1. try young-gen
2. try old-gen
3. invoke GC operation
4. if GC-op succeeds, return; otherwise, go to 1
Before step 3, we need to call `total_collections()`, which requires holding `Heap_lock`. The current code invokes old-gen while holding `Heap_lock`.
An alternative is to use par_allocate API outside the critical-region. This cleans up the structure and streamlines the flow.
1. try young-gen
2. try old-gen
3. invoke GC operation
4. if GC-op succeeds, return; otherwise, go to 1
Before step 3, we need to call `total_collections()`, which requires holding `Heap_lock`. The current code invokes old-gen while holding `Heap_lock`.
An alternative is to use par_allocate API outside the critical-region. This cleans up the structure and streamlines the flow.
- links to
-
Commit(master) openjdk/jdk/dd113c8d
-
Review(master) openjdk/jdk/26619