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

Coleen Phillimore coleenp at openjdk.org
Thu Oct 23 13:54:28 UTC 2025


On Wed, 22 Oct 2025 06:08:43 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Ok. Just to double check, casting to `InstanceKlass*` where we call `initialize_preemptable` for the `invokestatic` and `getstatic/putstatic` cases should be always safe right? I don’t see how we could get there for an `ArrayKlass`.
>
> 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.

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

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


More information about the core-libs-dev mailing list