From 9dbabdecebcfee8ac0a7e1da93e20236f2b54d7e Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Sat, 8 Nov 2014 16:40:22 +0000 Subject: [PATCH] Document the contract of DatabaseExecutor. --- .../src/org/briarproject/api/db/DatabaseExecutor.java | 8 +++++++- briar-core/src/org/briarproject/crypto/CryptoModule.java | 3 ++- briar-core/src/org/briarproject/db/DatabaseModule.java | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java b/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java index 3c0e44a73d..22d04d0150 100644 --- a/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java +++ b/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java @@ -10,7 +10,13 @@ import java.lang.annotation.Target; import com.google.inject.BindingAnnotation; -/** Annotation for injecting the executor for database tasks. */ +/** + * Annotation for injecting the executor for database tasks. + * <p> + * The contract of this executor is that tasks are executed in the order + * they're submitted, tasks are not executed concurrently, and submitting a + * task will never block. + */ @BindingAnnotation @Target({ FIELD, METHOD, PARAMETER }) @Retention(RUNTIME) diff --git a/briar-core/src/org/briarproject/crypto/CryptoModule.java b/briar-core/src/org/briarproject/crypto/CryptoModule.java index f0eb56f05d..d7dd2fdb49 100644 --- a/briar-core/src/org/briarproject/crypto/CryptoModule.java +++ b/briar-core/src/org/briarproject/crypto/CryptoModule.java @@ -28,7 +28,7 @@ public class CryptoModule extends AbstractModule { private final ExecutorService cryptoExecutor; public CryptoModule() { - // The queue is unbounded, so tasks can be dependent + // Use an unbounded queue BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(); // Discard tasks that are submitted during shutdown RejectedExecutionHandler policy = @@ -38,6 +38,7 @@ public class CryptoModule extends AbstractModule { 60, SECONDS, queue, policy); } + @Override protected void configure() { bind(CryptoComponent.class).to( CryptoComponentImpl.class).in(Singleton.class); diff --git a/briar-core/src/org/briarproject/db/DatabaseModule.java b/briar-core/src/org/briarproject/db/DatabaseModule.java index 824b3e9dc6..b800defe44 100644 --- a/briar-core/src/org/briarproject/db/DatabaseModule.java +++ b/briar-core/src/org/briarproject/db/DatabaseModule.java @@ -29,7 +29,7 @@ public class DatabaseModule extends AbstractModule { private final ExecutorService databaseExecutor; public DatabaseModule() { - // The queue is unbounded, so tasks can be dependent + // Use an unbounded queue BlockingQueue<Runnable> queue = new LinkedBlockingQueue<Runnable>(); // Discard tasks that are submitted during shutdown RejectedExecutionHandler policy = -- GitLab