``` diff --git a/core/src/main/java/org/jruby/ext/timeout/Timeout.java b/core/src/main/java/org/jruby/ext/timeout/Timeout.java index 9d8b7dd4e7..a67e62eb82 100644 --- a/core/src/main/java/org/jruby/ext/timeout/Timeout.java +++ b/core/src/main/java/org/jruby/ext/timeout/Timeout.java @@ -69,7 +69,7 @@ public class Timeout { executor.setRemoveOnCancelPolicy(true); timeout.setInternalVariable(EXECUTOR_VARIABLE, executor); - timeout.getRuntime().pushExitFunction((context) -> { executor.shutdown(); return 0;}); + timeout.getRuntime().addInternalFinalizer(executor::shutdown); } ```