From 9cccd0bfc993a8825c8aad6891f16ff25c440cc8 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Sun, 8 Aug 2004 01:40:48 +0000
Subject: [PATCH] rather than flush any/all log messages 10 times a second,
 flush log messages once there are 100 of them or 10 seconds have passed,
 whichever comes first

---
 core/java/src/net/i2p/util/LogManager.java | 10 ++++++++++
 core/java/src/net/i2p/util/LogWriter.java  |  5 ++++-
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/core/java/src/net/i2p/util/LogManager.java b/core/java/src/net/i2p/util/LogManager.java
index f736a21fc5..bbd5d82659 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 421f13dc1f..0b476ff278 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) {
-- 
GitLab