Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8082724 | emb-9 | Stefan Karlsson | P4 | Resolved | Fixed | team |
There is a circular dependency between between PSParallelCompact and ParCompactionManager that makes it hard to move ParCompactionManager::push to psCompactionManager.inline.hpp, something that we need for JDK-8076177.
The circular dependency can be seen with:
<the follow contents functions in psCompactionManager.cpp>
PSParallelCompact::mark_and_push
ParCompactionManager::push
The suggested fix is to make mark_and_push a member of ParCompactionManager. The implementation already takes a ParCompactionManager as the first argument and it's used by other ParCompactionManager specific functions.
The fix also moves the rest of the follow_* functions so that all marking code, which is done in multiple threads using separate ParCompactionManagers, are held together.
The circular dependency can be seen with:
<the follow contents functions in psCompactionManager.cpp>
PSParallelCompact::mark_and_push
ParCompactionManager::push
The suggested fix is to make mark_and_push a member of ParCompactionManager. The implementation already takes a ParCompactionManager as the first argument and it's used by other ParCompactionManager specific functions.
The fix also moves the rest of the follow_* functions so that all marking code, which is done in multiple threads using separate ParCompactionManagers, are held together.
- backported by
-
JDK-8082724 Move PSParallelCompact::mark_and_push to ParCompactionManager
-
- Resolved
-