From 98f1f26fcf2968d70ed9d8db6a2929587e0b6408 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Mon, 26 Nov 2012 14:48:10 +0000
Subject: [PATCH] Give names to threads for debugging purposes.

---
 src/net/sf/briar/android/AndroidExecutorImpl.java         | 2 +-
 src/net/sf/briar/invitation/Connector.java                | 1 +
 src/net/sf/briar/invitation/ConnectorGroup.java           | 1 +
 src/net/sf/briar/lifecycle/ShutdownManagerImpl.java       | 2 +-
 .../sf/briar/lifecycle/WindowsShutdownManagerImpl.java    | 6 +++++-
 src/net/sf/briar/plugins/PollerImpl.java                  | 2 +-
 .../protocol/duplex/DuplexConnectionFactoryImpl.java      | 8 ++++----
 .../protocol/simplex/SimplexConnectionFactoryImpl.java    | 4 ++--
 8 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/net/sf/briar/android/AndroidExecutorImpl.java b/src/net/sf/briar/android/AndroidExecutorImpl.java
index 7928e059df..3cc4e2e206 100644
--- a/src/net/sf/briar/android/AndroidExecutorImpl.java
+++ b/src/net/sf/briar/android/AndroidExecutorImpl.java
@@ -38,7 +38,7 @@ class AndroidExecutorImpl implements AndroidExecutor {
 
 	private void startIfNecessary() {
 		if(started.getAndSet(true)) return;
-		new Thread(loop).start();
+		new Thread(loop, "AndroidExecutor").start();
 		try {
 			startLatch.await();
 		} catch(InterruptedException e) {
diff --git a/src/net/sf/briar/invitation/Connector.java b/src/net/sf/briar/invitation/Connector.java
index 1aed16e97e..e1adf6b2f6 100644
--- a/src/net/sf/briar/invitation/Connector.java
+++ b/src/net/sf/briar/invitation/Connector.java
@@ -44,6 +44,7 @@ abstract class Connector extends Thread {
 	Connector(CryptoComponent crypto, ReaderFactory readerFactory,
 			WriterFactory writerFactory, ConnectorGroup group,
 			DuplexPlugin plugin, PseudoRandom random) {
+		super("Connector");
 		this.crypto = crypto;
 		this.readerFactory = readerFactory;
 		this.writerFactory = writerFactory;
diff --git a/src/net/sf/briar/invitation/ConnectorGroup.java b/src/net/sf/briar/invitation/ConnectorGroup.java
index 5c800411c7..86352ec864 100644
--- a/src/net/sf/briar/invitation/ConnectorGroup.java
+++ b/src/net/sf/briar/invitation/ConnectorGroup.java
@@ -52,6 +52,7 @@ class ConnectorGroup extends Thread implements InvitationTask {
 			ReaderFactory readerFactory, WriterFactory writerFactory,
 			PluginManager pluginManager, int handle, int localInvitationCode,
 			int remoteInvitationCode) {
+		super("ConnectorGroup");
 		this.invitationManager = invitationManager;
 		this.crypto = crypto;
 		this.readerFactory = readerFactory;
diff --git a/src/net/sf/briar/lifecycle/ShutdownManagerImpl.java b/src/net/sf/briar/lifecycle/ShutdownManagerImpl.java
index fa6eb7833f..bc8bd05285 100644
--- a/src/net/sf/briar/lifecycle/ShutdownManagerImpl.java
+++ b/src/net/sf/briar/lifecycle/ShutdownManagerImpl.java
@@ -24,7 +24,7 @@ class ShutdownManagerImpl implements ShutdownManager {
 	}
 
 	protected Thread createThread(Runnable r) {
-		return new Thread(r);
+		return new Thread(r, "ShutdownManager");
 	}
 
 	public synchronized boolean removeShutdownHook(int handle) {
diff --git a/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java b/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
index 677744832e..7c011e13ae 100644
--- a/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
+++ b/src/net/sf/briar/lifecycle/WindowsShutdownManagerImpl.java
@@ -90,6 +90,10 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 
 	private class EventLoop extends Thread {
 
+		private EventLoop() {
+			super("EventLoop");
+		}
+
 		@Override
 		public void run() {			
 			try {
@@ -140,7 +144,7 @@ class WindowsShutdownManagerImpl extends ShutdownManagerImpl {
 		private final AtomicBoolean called = new AtomicBoolean(false);
 
 		private StartOnce(Runnable r) {
-			super(r);
+			super(r, "ShutdownManager");
 		}
 
 		@Override
diff --git a/src/net/sf/briar/plugins/PollerImpl.java b/src/net/sf/briar/plugins/PollerImpl.java
index 138421f57b..3448070de9 100644
--- a/src/net/sf/briar/plugins/PollerImpl.java
+++ b/src/net/sf/briar/plugins/PollerImpl.java
@@ -34,7 +34,7 @@ class PollerImpl implements Poller, Runnable {
 
 	public synchronized void start(Collection<Plugin> plugins) {
 		for(Plugin plugin : plugins) schedule(plugin);
-		new Thread(this).start();
+		new Thread(this, "Poller").start();
 	}
 
 	private synchronized void schedule(Plugin plugin) {
diff --git a/src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java b/src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
index 3c3c5c4990..c005162d39 100644
--- a/src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
+++ b/src/net/sf/briar/protocol/duplex/DuplexConnectionFactoryImpl.java
@@ -66,13 +66,13 @@ class DuplexConnectionFactoryImpl implements DuplexConnectionFactory {
 				conn.write();
 			}
 		};
-		new Thread(write).start();
+		new Thread(write, "DuplexConnectionWriter").start();
 		Runnable read = new Runnable() {
 			public void run() {
 				conn.read();
 			}
 		};
-		new Thread(read).start();
+		new Thread(read, "DuplexConnectionReader").start();
 	}
 
 	public void createOutgoingConnection(ContactId c, TransportId t,
@@ -92,12 +92,12 @@ class DuplexConnectionFactoryImpl implements DuplexConnectionFactory {
 				conn.write();
 			}
 		};
-		new Thread(write).start();
+		new Thread(write, "DuplexConnectionWriter").start();
 		Runnable read = new Runnable() {
 			public void run() {
 				conn.read();
 			}
 		};
-		new Thread(read).start();
+		new Thread(read, "DuplexConnectionReader").start();
 	}
 }
diff --git a/src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java b/src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
index 02b3497911..e8cb98768d 100644
--- a/src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
+++ b/src/net/sf/briar/protocol/simplex/SimplexConnectionFactoryImpl.java
@@ -66,7 +66,7 @@ class SimplexConnectionFactoryImpl implements SimplexConnectionFactory {
 				conn.read();
 			}
 		};
-		new Thread(read).start();
+		new Thread(read, "SimplexConnectionReader").start();
 	}
 
 	public void createOutgoingConnection(ContactId c, TransportId t,
@@ -84,6 +84,6 @@ class SimplexConnectionFactoryImpl implements SimplexConnectionFactory {
 				conn.write();
 			}
 		};
-		new Thread(write).start();
+		new Thread(write, "SimplexConnectionWriter").start();
 	}
 }
-- 
GitLab