From 93a764c98670cb71d52b8a37b5ae46f675a9e3c4 Mon Sep 17 00:00:00 2001 From: ParkerTenBroeck <51721964+ParkerTenBroeck@users.noreply.github.com> Date: Thu, 1 May 2025 19:37:11 -0400 Subject: [PATCH] fixed bug where void async return didn't work --- src/Main.java | 11 +++++------ src/generators/loadtime/future/FutureSMBuilder.java | 3 +-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/Main.java b/src/Main.java index 6754b3f..d77a3b3 100644 --- a/src/Main.java +++ b/src/Main.java @@ -2,7 +2,6 @@ import async_runtime.Delay; import async_runtime.Jokio; import generators.RT; import future.Future; -import future.Waker; import gen.Gen; import java.util.function.Supplier; @@ -14,7 +13,7 @@ public class Main implements Runnable { @Override public void run() { - lambda(() -> { + async_lambda(() -> { System.out.println("START"); Delay.delay(100).await(); System.out.println("END"); @@ -24,15 +23,15 @@ public class Main implements Runnable { await(); } + void async_lambda(Supplier> lambda){ + new Jokio().blocking(lambda.get()); + } + void await(){ new Jokio().blocking(AsyncExamples.test()); } - void lambda(Supplier> lambda){ - new Jokio().blocking(lambda.get()); - } - void lexer(){ var gen = Lexer.parse("f7(x,y,z,w, u,v, othersIg) = v-(x*y+y+ln(z)^2*sin(z*pi/2))/(w*u)+sqrt(othersIg*120e-1)"); diff --git a/src/generators/loadtime/future/FutureSMBuilder.java b/src/generators/loadtime/future/FutureSMBuilder.java index f4ed74c..a6fcf24 100644 --- a/src/generators/loadtime/future/FutureSMBuilder.java +++ b/src/generators/loadtime/future/FutureSMBuilder.java @@ -145,12 +145,11 @@ public class FutureSMBuilder extends StateMachineBuilder { @Override public void build_prelude(StateMachineBuilder smb, CodeBuilder cob, Frame frame) { - cob.aload(0).loadConstant(-1).putfield(smb.CD_this, STATE_NAME, TypeKind.INT.upperBound()).aconst_null().areturn(); } @Override public void build_inline(StateMachineBuilder smb, CodeBuilder cob, Frame frame) { - + cob.aload(0).loadConstant(-1).putfield(smb.CD_this, STATE_NAME, TypeKind.INT.upperBound()).aconst_null().areturn(); } }