Hi

Could you please review following fix which slightly refactor vmTestbase stress test harness. This refactoring helps to add virtual threads testing support.

The Wicket uses plain sync/wait/notify mechanism which cause carrier thread starvation and should not be used in virtual threads. The ManagedThread is a subclass of Thread so it couldn't be virtual thread.


Following fix changes Wicket to use locks/conditions to don't pin vthread to carrier thread while starting testing.

ManagedThread is fixed to keep execution thread as the thread variable and isolate it's creation.

Test vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects003/referringObjects003a.java was updated to don't use Wicket. (The lock has a reference to thread which affects test.)

Wicket "finished" in class ThreadsRunner was changed to atomicInt/sleep to avoid OOME in j.u.c.l.Condition::await() which might happened in stress GC tests.

webrev: http://cr.openjdk.java.net/~lmesnik/8241123/webrev.00/

bug: https://bugs.openjdk.java.net/browse/JDK-8241123


Leonid

Reply via email to