diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java index f736a21fc5779fb061f72e9149b7cea2957a6c69..bbd5d826598ad17e34855075f7c9e6b5f372dd75 100644 --- a/core/java/src/net/i2p/util/LogManager.java +++ b/core/java/src/net/i2p/util/LogManager.java @@ -209,8 +209,18 @@ public class LogManager { * */ void addRecord(LogRecord record) { + int numRecords = 0; synchronized (_records) { _records.add(record); + numRecords = _records.size(); + } + + if (numRecords > 100) { + // the writer waits 10 seconds *or* until we tell them to wake up + // before rereading the config and writing out any log messages + synchronized (_writer) { + _writer.notifyAll(); + } } } diff --git a/core/java/src/net/i2p/util/LogWriter.java b/core/java/src/net/i2p/util/LogWriter.java index 421f13dc1f3e86f5b05b3e53a0b6c8068ca9e83c..0b476ff2782a19e3e29ea3cb78aac6c25a640526 100644 --- a/core/java/src/net/i2p/util/LogWriter.java +++ b/core/java/src/net/i2p/util/LogWriter.java @@ -72,12 +72,15 @@ class LogWriter implements Runnable { t.printStackTrace(); } finally { try { - Thread.sleep(100); + synchronized (this) { + this.wait(10*1000); + } } catch (InterruptedException ie) { // nop } } } + private void rereadConfig() { long now = Clock.getInstance().now(); if (now - _lastReadConfig > CONFIG_READ_ITERVAL) {