package toast.examples; import jaci.openrio.toast.core.Toast; import jaci.openrio.toast.core.thread.Async; import jaci.openrio.toast.lib.module.ToastModule; import java.util.concurrent.Callable; import java.util.concurrent.Future; public class ThreadWorker extends ToastModule { @Override public String getModuleName() { return "Heartbeat_Worker"; } @Override public String getModuleVersion() { return "1.0.0"; // Recommended to follow the standard Toast Versioning System (major.minor.build-prebuild) } @Override public void prestart() { } @Override public void start() { Async.INSTANCE.addWorker(new Runnable() { // Add a new, void return type method to the Thread Pool @Override public void run() { Toast.log().info("Hello from the threadpool!"); } }); Future<Integer> future = Async.INSTANCE.addWorker(new Callable<Integer>() { // Add a new, non-void return type method to the Thread Pool @Override public Integer call() throws Exception { return 5 * 2; } }); Toast.log().info("Thread complete! Result: " + future.get()); // => 10 (blocks/waits until result is complete) } }