From c21a6a54f89343a2a3041a9d5ec9ead7ee11ab90 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Mon, 5 Nov 2012 17:20:47 +0000
Subject: [PATCH]  * PeerManager: Don't reorganize as often if it takes too
 long (ticket #765)

---
 router/java/src/net/i2p/router/peermanager/PeerManager.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/router/java/src/net/i2p/router/peermanager/PeerManager.java b/router/java/src/net/i2p/router/peermanager/PeerManager.java
index 1cc82a46e5..bf3564298a 100644
--- a/router/java/src/net/i2p/router/peermanager/PeerManager.java
+++ b/router/java/src/net/i2p/router/peermanager/PeerManager.java
@@ -89,14 +89,16 @@ class PeerManager {
             super(_context.simpleTimer2(), REORGANIZE_TIME);
         }
         public void timeReached() {
+            long start = System.currentTimeMillis();
             try {
                 _organizer.reorganize(true);
             } catch (Throwable t) {
                 _log.log(Log.CRIT, "Error evaluating profiles", t);
             }
+            long orgtime = System.currentTimeMillis() - start;
             long uptime = _context.router().getUptime();
             long delay;
-            if (uptime > 2*60*60*1000)
+            if (orgtime > 1000 || uptime > 2*60*60*1000)
                 delay = REORGANIZE_TIME_LONG;
             else if (uptime > 10*60*1000)
                 delay = REORGANIZE_TIME_MEDIUM;
-- 
GitLab