Skip to content

Commit 68918f7

Browse files
authored
Sync with underscore-java
1 parent b7ca1c4 commit 68918f7

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/main/java/com/github/underscore/Underscore.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -2098,13 +2098,14 @@ public static <T> java.util.concurrent.ScheduledFuture<T> delay(
20982098
final Supplier<T> function, final int delayMilliseconds) {
20992099
final java.util.concurrent.ScheduledExecutorService scheduler =
21002100
java.util.concurrent.Executors.newSingleThreadScheduledExecutor();
2101-
final java.util.concurrent.ScheduledFuture<T> future =
2102-
scheduler.schedule(
2103-
function::get,
2104-
delayMilliseconds,
2105-
java.util.concurrent.TimeUnit.MILLISECONDS);
2106-
scheduler.shutdown();
2107-
return future;
2101+
try {
2102+
return scheduler.schedule(
2103+
function::get,
2104+
delayMilliseconds,
2105+
java.util.concurrent.TimeUnit.MILLISECONDS);
2106+
} finally {
2107+
scheduler.shutdown();
2108+
}
21082109
}
21092110

21102111
public static <T> java.util.concurrent.ScheduledFuture<T> defer(final Supplier<T> function) {
@@ -3624,6 +3625,7 @@ public static <T> java.util.concurrent.ScheduledFuture setInterval(
36243625
final Supplier<T> function, final int delayMilliseconds) {
36253626
final java.util.concurrent.ScheduledExecutorService scheduler =
36263627
java.util.concurrent.Executors.newSingleThreadScheduledExecutor();
3628+
Runtime.getRuntime().addShutdownHook(new Thread(scheduler::shutdown));
36273629
return scheduler.scheduleAtFixedRate(
36283630
function::get,
36293631
delayMilliseconds,

0 commit comments

Comments
 (0)