+{"files":[{"patch":"@@ -647,0 +647,7 @@\n+ if (fr.is_heap_frame()) { \/\/ we want this check after the check for JVMTI_ERROR_INVALID_SLOT\n+ assert(_depth == 0 && Continuation::is_frame_in_continuation(_jvf->thread(), fr), \"sanity check\");\n+ \/\/ the safepoint could be as we return to the return barrier but before we execute it (poll return)\n+ _result = JVMTI_ERROR_OPAQUE_FRAME; \/\/ deferred locals currently unsupported in continuations\n+ return;\n+ }\n+\n","filename":"src\/hotspot\/share\/prims\/jvmtiImpl.cpp","additions":7,"deletions":0,"binary":false,"changes":7,"status":"modified"},{"patch":"@@ -38,2 +38,1 @@\n- static final int MSG_COUNT = 600*1000;\n- static final SynchronousQueue<String> QUEUE = new SynchronousQueue<>();\n+ static SynchronousQueue<String> QUEUE;\n@@ -59,5 +58,1 @@\n- for (int i = 0; i < MSG_COUNT; i++) {\n- if (completed()) {\n- consumer.interrupt();\n- break;\n- }\n+ while (!completed()) {\n@@ -66,1 +61,3 @@\n- } catch (InterruptedException e) { }\n+ consumer.interrupt();\n+ } catch (InterruptedException e) {\n+ }\n@@ -71,1 +68,1 @@\n- for (int i = 0; i < MSG_COUNT; i++) {\n+ while(true) {\n@@ -80,0 +77,1 @@\n+ QUEUE = new SynchronousQueue<>();\n@@ -104,1 +102,5 @@\n- obj.runTest();\n+\n+ for (int i = 0; i < 1000; i++) {\n+ obj.runTest();\n+ }\n+\n","filename":"test\/hotspot\/jtreg\/serviceability\/jvmti\/vthread\/GetSetLocalTest\/GetSetLocalTest.java","additions":12,"deletions":10,"binary":false,"changes":22,"status":"modified"},{"patch":"@@ -490,1 +490,5 @@\n- return completed;\n+ if (completed) {\n+ completed = JNI_FALSE;\n+ return JNI_TRUE;\n+ }\n+ return JNI_FALSE;\n","filename":"test\/hotspot\/jtreg\/serviceability\/jvmti\/vthread\/GetSetLocalTest\/libGetSetLocalTest.cpp","additions":5,"deletions":1,"binary":false,"changes":6,"status":"modified"}]}
0 commit comments