From 832d66bfb992cd7e23e637a8cf3f56557d2432e6 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Wed, 29 Aug 2012 13:47:05 +0000
Subject: [PATCH] NTCP: Reduce lock contention (ticket #697)

---
 router/java/src/net/i2p/router/transport/ntcp/Reader.java | 6 ++++--
 router/java/src/net/i2p/router/transport/ntcp/Writer.java | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/router/java/src/net/i2p/router/transport/ntcp/Reader.java b/router/java/src/net/i2p/router/transport/ntcp/Reader.java
index 68480538aa..13a4632df8 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/Reader.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/Reader.java
@@ -64,8 +64,9 @@ class Reader {
                 already = true;
             } else {
                 _pendingConnections.add(con);
+                // only notify here if added?
             }
-            _pendingConnections.notifyAll();
+            _pendingConnections.notify();
         }
         if (_log.shouldLog(Log.DEBUG))
             _log.debug("wantsRead: " + con + " already live? " + already);
@@ -75,7 +76,8 @@ class Reader {
         synchronized (_pendingConnections) {
             _readAfterLive.remove(con);
             _pendingConnections.remove(con);
-            _pendingConnections.notifyAll();
+            // necessary?
+            _pendingConnections.notify();
         }
     }
     
diff --git a/router/java/src/net/i2p/router/transport/ntcp/Writer.java b/router/java/src/net/i2p/router/transport/ntcp/Writer.java
index 80bb26631f..1ed1e7c219 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/Writer.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/Writer.java
@@ -62,8 +62,9 @@ class Writer {
                 already = true;
             } else {
                 pending = _pendingConnections.add(con);
+                // only notify here if added?
             }
-            _pendingConnections.notifyAll();
+            _pendingConnections.notify();
         }
         if (_log.shouldLog(Log.DEBUG))
             _log.debug("wantsWrite: " + con + " already live? " + already + " added to pending? " + pending + ": " + source);
@@ -73,7 +74,8 @@ class Writer {
         synchronized (_pendingConnections) {
             _writeAfterLive.remove(con);
             _pendingConnections.remove(con);
-            _pendingConnections.notifyAll();
+            // necessary?
+            _pendingConnections.notify();
         }
     }
     
-- 
GitLab