diff --git a/src/main/java/org/syndicate_lang/actors/Actor.java b/src/main/java/org/syndicate_lang/actors/Actor.java index 1bad5bc..03ac4f5 100644 --- a/src/main/java/org/syndicate_lang/actors/Actor.java +++ b/src/main/java/org/syndicate_lang/actors/Actor.java @@ -58,7 +58,7 @@ public class Actor implements Executor { return new Actor().proxyFor(o); } - public static Promise> boot(Supplier f) { + public static Promise> boot(ThrowingSupplier f) { Promise> p = new Promise<>(); Actor a = new Actor(); a.execute( diff --git a/src/main/java/org/syndicate_lang/actors/Promise.java b/src/main/java/org/syndicate_lang/actors/Promise.java index 673ed45..8a335ed 100644 --- a/src/main/java/org/syndicate_lang/actors/Promise.java +++ b/src/main/java/org/syndicate_lang/actors/Promise.java @@ -117,7 +117,7 @@ public class Promise implements Future { return this.andThen(ok, null); } - public void resolveCalling(Supplier f) { + public void resolveCalling(ThrowingSupplier f) { try { this.resolveWith(f.get()); } catch (Throwable e) { diff --git a/src/main/java/org/syndicate_lang/actors/ThrowingSupplier.java b/src/main/java/org/syndicate_lang/actors/ThrowingSupplier.java new file mode 100644 index 0000000..81bf841 --- /dev/null +++ b/src/main/java/org/syndicate_lang/actors/ThrowingSupplier.java @@ -0,0 +1,5 @@ +package org.syndicate_lang.actors; + +public interface ThrowingSupplier { + public T get() throws Throwable; +}