From f9a6c46efeab60593b65a7aa5c396052e83a6ff3 Mon Sep 17 00:00:00 2001
From: akwizgran <akwizgran@users.sourceforge.net>
Date: Thu, 2 Oct 2014 18:06:05 +0100
Subject: [PATCH] Merged ReliabilityExecutor into IoExecutor.

---
 .../api/reliability/ReliabilityExecutor.java  | 17 ----------
 .../ReliabilityLayerFactoryImpl.java          | 10 +++---
 .../reliability/ReliabilityModule.java        | 34 +------------------
 3 files changed, 6 insertions(+), 55 deletions(-)
 delete mode 100644 briar-api/src/org/briarproject/api/reliability/ReliabilityExecutor.java

diff --git a/briar-api/src/org/briarproject/api/reliability/ReliabilityExecutor.java b/briar-api/src/org/briarproject/api/reliability/ReliabilityExecutor.java
deleted file mode 100644
index dbb2ddcd56..0000000000
--- a/briar-api/src/org/briarproject/api/reliability/ReliabilityExecutor.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.briarproject.api.reliability;
-
-import static java.lang.annotation.ElementType.FIELD;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
-import com.google.inject.BindingAnnotation;
-
-/** Annotation for injecting the executor used by reliability layers. */
-@BindingAnnotation
-@Target({ FIELD, METHOD, PARAMETER })
-@Retention(RUNTIME)
-public @interface ReliabilityExecutor {}
\ No newline at end of file
diff --git a/briar-core/src/org/briarproject/reliability/ReliabilityLayerFactoryImpl.java b/briar-core/src/org/briarproject/reliability/ReliabilityLayerFactoryImpl.java
index 0cb3716cbf..7aee1db755 100644
--- a/briar-core/src/org/briarproject/reliability/ReliabilityLayerFactoryImpl.java
+++ b/briar-core/src/org/briarproject/reliability/ReliabilityLayerFactoryImpl.java
@@ -4,7 +4,7 @@ import java.util.concurrent.Executor;
 
 import javax.inject.Inject;
 
-import org.briarproject.api.reliability.ReliabilityExecutor;
+import org.briarproject.api.lifecycle.IoExecutor;
 import org.briarproject.api.reliability.ReliabilityLayer;
 import org.briarproject.api.reliability.ReliabilityLayerFactory;
 import org.briarproject.api.reliability.WriteHandler;
@@ -13,16 +13,16 @@ import org.briarproject.system.SystemClock;
 
 class ReliabilityLayerFactoryImpl implements ReliabilityLayerFactory {
 
-	private final Executor executor;
+	private final Executor ioExecutor;
 	private final Clock clock;
 
 	@Inject
-	ReliabilityLayerFactoryImpl(@ReliabilityExecutor Executor executor) {
-		this.executor = executor;
+	ReliabilityLayerFactoryImpl(@IoExecutor Executor ioExecutor) {
+		this.ioExecutor = ioExecutor;
 		clock = new SystemClock();
 	}
 
 	public ReliabilityLayer createReliabilityLayer(WriteHandler writeHandler) {
-		return new ReliabilityLayerImpl(executor, clock, writeHandler);
+		return new ReliabilityLayerImpl(ioExecutor, clock, writeHandler);
 	}
 }
diff --git a/briar-core/src/org/briarproject/reliability/ReliabilityModule.java b/briar-core/src/org/briarproject/reliability/ReliabilityModule.java
index 691b52cb79..aabd18e875 100644
--- a/briar-core/src/org/briarproject/reliability/ReliabilityModule.java
+++ b/briar-core/src/org/briarproject/reliability/ReliabilityModule.java
@@ -1,46 +1,14 @@
 package org.briarproject.reliability;
 
-import static java.util.concurrent.TimeUnit.SECONDS;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.Executor;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.RejectedExecutionHandler;
-import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-
-import javax.inject.Singleton;
-
-import org.briarproject.api.lifecycle.LifecycleManager;
-import org.briarproject.api.reliability.ReliabilityExecutor;
 import org.briarproject.api.reliability.ReliabilityLayerFactory;
 
 import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
 
 public class ReliabilityModule extends AbstractModule {
 
-	private final ExecutorService reliabilityExecutor;
-
-	public ReliabilityModule() {
-		// The thread pool is unbounded, so use direct handoff
-		BlockingQueue<Runnable> queue = new SynchronousQueue<Runnable>();
-		// Discard tasks that are submitted during shutdown
-		RejectedExecutionHandler policy =
-				new ThreadPoolExecutor.DiscardPolicy();
-		// Create threads as required and keep them in the pool for 60 seconds
-		reliabilityExecutor = new ThreadPoolExecutor(0, Integer.MAX_VALUE,
-				60, SECONDS, queue, policy);
-	}
-
+	@Override
 	protected void configure() {
 		bind(ReliabilityLayerFactory.class).to(
 				ReliabilityLayerFactoryImpl.class);
 	}
-
-	@Provides @Singleton @ReliabilityExecutor
-	Executor getReliabilityExecutor(LifecycleManager lifecycleManager) {
-		lifecycleManager.registerForShutdown(reliabilityExecutor);
-		return reliabilityExecutor;
-	}
 }
-- 
GitLab