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