ConcurrentMark::cm_thread() provides direct access to the concurrent mark thread; it is used in a few places in G1CollectedHeap.
SinceJDK-8367993 this thread (and the G1ConcurrentMark class) are not initlalized immediately any more, making this direct access problematic. Also, not all accesses are guarded with the `G1ConcurrentMark::is_fully_initialized()` assert.
Instead of everyone checking is_fully_initialized() it is easier to read.
Also there is some circular calls going on because of that (G1ConcurrentMark calls G1CollectedHeap which calls G1ConcurrentMark).
The ConcurrentMarkThread is also an implementation detail of how concurrent mark works.
Since
Instead of everyone checking is_fully_initialized() it is easier to read.
Also there is some circular calls going on because of that (G1ConcurrentMark calls G1CollectedHeap which calls G1ConcurrentMark).
The ConcurrentMarkThread is also an implementation detail of how concurrent mark works.
- links to
-
Review(master)
openjdk/jdk/30114