Hi Leonid, I've started looking at your webrev, and so far have a couple questions:
> 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.) can't you use just a volatile boolean field? > 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. won't j.u.c.CountDownLatch be more appropriate and cleaner solution here? I need more time to get grasp of Wicket and your changes in it; will come back to you after I understand them. -- Igor > On Mar 18, 2020, at 12:37 PM, Leonid Mesnik <[email protected]> wrote: > > 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 >
