RFR: 8369238: Allow virtual thread preemption on some common class initialization paths [v3]

Patricio Chilano Mateo pchilanomate at openjdk.org
Thu Oct 23 22:34:15 UTC 2025


On Thu, 23 Oct 2025 12:11:08 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> Hmmm seems there is an `objArrayKlass::initialize` (and an empty `typeArrayKlass::initialize`) but I don't know when such classes would be initialized. I would not expect them to be the target of invokestatic/getstatic/putstatic, nor for "new" but a "new array" would have to do the initialization of the bottom class (at least that is what `objArrayKlass::initialize` does) - and I don't think the current changes address that case. ??
>> 
>> Anyway leave the placement as-is.
>
> Would an initialize_preemptable() = 0 be better?  then you can see if it's called by anything other than InstanceKlass.  Klass is always abstract.

We can but we would have to implement it for `ArrayKlass` too which is kind of the same of what we have now. We have a `ShouldNotReachHere()` in `Klass::initialize_preemptable` (following the same pattern as `Klass::initialize`), so we will catch anything other than `InstanceKlass`.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/27802#discussion_r2457655990


More information about the core-libs-dev mailing list