File tree Expand file tree Collapse file tree 1 file changed +17
-2
lines changed
substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread Expand file tree Collapse file tree 1 file changed +17
-2
lines changed Original file line number Diff line number Diff line change 2626
2727import org .graalvm .nativeimage .CurrentIsolate ;
2828
29+ import com .oracle .svm .core .NeverInline ;
2930import com .oracle .svm .core .annotate .Alias ;
3031import com .oracle .svm .core .annotate .Inject ;
31- import com .oracle .svm .core .NeverInline ;
3232import com .oracle .svm .core .annotate .RecomputeFieldValue ;
3333import com .oracle .svm .core .annotate .Substitute ;
3434import com .oracle .svm .core .annotate .TargetClass ;
35+ import com .oracle .svm .core .jdk .InternalVMMethod ;
3536import com .oracle .svm .core .jdk .JDK19OrLater ;
3637import com .oracle .svm .core .jdk .LoomJDK ;
3738import com .oracle .svm .core .jdk .NotLoomJDK ;
@@ -123,12 +124,26 @@ boolean isStarted() {
123124 @ Alias
124125 public static native Target_jdk_internal_vm_Continuation getCurrentContinuation (Target_jdk_internal_vm_ContinuationScope scope );
125126
127+ @ InternalVMMethod
128+ private static class ContinuationEnter0 implements Runnable {
129+ private final Target_jdk_internal_vm_Continuation continuation ;
130+
131+ public ContinuationEnter0 (Target_jdk_internal_vm_Continuation c ) {
132+ this .continuation = c ;
133+ }
134+
135+ @ Override
136+ public void run () {
137+ continuation .enter0 ();
138+ }
139+ }
140+
126141 @ Substitute
127142 static void enterSpecial (Target_jdk_internal_vm_Continuation c , boolean isContinue , boolean isVirtualThread ) {
128143 assert isVirtualThread ;
129144 if (!isContinue ) {
130145 assert c .internal == null ;
131- c .internal = new Continuation (c :: enter0 );
146+ c .internal = new Continuation (new ContinuationEnter0 ( c ) );
132147 }
133148 c .internal .enter ();
134149 }
You can’t perform that action at this time.
0 commit comments