From a23fa6fadde60904764fce70c0c2c0093f09bf4a Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Tue, 4 May 2004 08:14:19 +0000
Subject: [PATCH] allow multiple concurrent connections to be created added a
 unique ID to more threads

---
 .../java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java  | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
index d5efeb4c79..3a20c57775 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelClientBase.java
@@ -33,6 +33,8 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
 
     private static final long DEFAULT_CONNECT_TIMEOUT = 60 * 1000;
 
+    private static volatile long __clientId = 0;
+    private long _clientId;
     protected Object sockLock = new Object(); // Guards sockMgr and mySockets
     private I2PSocketManager sockMgr;
     private List mySockets = new ArrayList();
@@ -60,9 +62,10 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
 
     public I2PTunnelClientBase(int localPort, boolean ownDest, Logging l, EventDispatcher notifyThis, String handlerName) {
         super(localPort + " (uninitialized)", notifyThis);
+        _clientId = ++__clientId;
         this.localPort = localPort;
         this.l = l;
-        this.handlerName = handlerName;
+        this.handlerName = handlerName + _clientId;
 
         synchronized (sockLock) {
             if (ownDest) {
@@ -75,7 +78,7 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
         l.log("I2P session created");
 
         Thread t = new I2PThread(this);
-        t.setName("Client");
+        t.setName("Client " + _clientId);
         listenerReady = false;
         t.start();
         open = true;
@@ -179,8 +182,8 @@ public abstract class I2PTunnelClientBase extends I2PTunnelTask implements Runna
     public I2PSocket createI2PSocket(Destination dest, I2PSocketOptions opt) throws I2PException, ConnectException, NoRouteToHostException, InterruptedIOException {
         I2PSocket i2ps;
 
+        i2ps = sockMgr.connect(dest, opt);
         synchronized (sockLock) {
-            i2ps = sockMgr.connect(dest, opt);
             mySockets.add(i2ps);
         }
 
-- 
GitLab