File tree Expand file tree Collapse file tree
core/src/main/java/io/netty/loom Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -56,7 +56,21 @@ public void onStart(Thread.VirtualThreadTask virtualThreadTask) {
5656
5757 @ Override
5858 public void onContinue (Thread .VirtualThreadTask virtualThreadTask ) {
59-
59+ var attachment = virtualThreadTask .attachment ();
60+ if (attachment instanceof AtomicReference <?>) {
61+ // TODO create a EventLoopSchedulerRef type
62+ @ SuppressWarnings ("unchecked" )
63+ var ref = (AtomicReference <VirtualThreadNettyScheduler >) attachment ;
64+ var scheduler = ref .get ();
65+ if (scheduler != null ) {
66+ if (scheduler .execute (virtualThreadTask )) {
67+ return ;
68+ }
69+ }
70+ // the v thread has been rejected by its assigned scheduler or its scheduler is gone
71+ virtualThreadTask .attach (null );
72+ }
73+ jdkBuildinScheduler .onContinue (virtualThreadTask );
6074 }
6175
6276 // just for benchmark
You can’t perform that action at this time.
0 commit comments