From 835ed6d9bbd71aacfbf117b15786bb49bd5ec661 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Mon, 10 Sep 2012 17:25:00 +0000 Subject: [PATCH] boost priority of shutdown thread --- router/java/src/net/i2p/router/Router.java | 3 +++ router/java/src/net/i2p/router/tasks/OOMListener.java | 2 ++ 2 files changed, 5 insertions(+) diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java index 11b0274c6e..236fe0be74 100644 --- a/router/java/src/net/i2p/router/Router.java +++ b/router/java/src/net/i2p/router/Router.java @@ -766,6 +766,9 @@ public class Router implements RouterClock.ClockShiftListener { * NOT to be called by others, use shutdown(). */ public void shutdown2(int exitCode) { + // help us shut down esp. after OOM + int priority = (exitCode == EXIT_OOM) ? Thread.MAX_PRIORITY - 1 : Thread.NORM_PRIORITY + 2; + Thread.currentThread().setPriority(priority); _shutdownInProgress = true; _log.log(Log.CRIT, "Starting final shutdown(" + exitCode + ')'); // So we can get all the way to the end diff --git a/router/java/src/net/i2p/router/tasks/OOMListener.java b/router/java/src/net/i2p/router/tasks/OOMListener.java index a9650c7bd2..6fc9b92cde 100644 --- a/router/java/src/net/i2p/router/tasks/OOMListener.java +++ b/router/java/src/net/i2p/router/tasks/OOMListener.java @@ -18,6 +18,8 @@ public class OOMListener implements I2PThread.OOMEventListener { } public void outOfMemory(OutOfMemoryError oom) { + // boost priority to help us shut down + Thread.currentThread().setPriority(Thread.MAX_PRIORITY - 1); Router.clearCaches(); Log log = _context.logManager().getLog(Router.class); log.log(Log.CRIT, "Thread ran out of memory, shutting down I2P", oom); -- GitLab