diff --git a/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java b/briar-api/src/org/briarproject/api/db/DatabaseExecutor.java index 3c0e44a73d4391a3e25551577e67dbbc0672a312..22d04d0150de4db9b509c133779cdbbf8be740f5 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 f0eb56f05dbb57c04238392f19c9c7d8162a247e..d7dd2fdb49a6798281ea8132c20dc46efe4a63e1 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 824b3e9dc6033d1527e0397b1fe3251b8428a841..b800defe444581d97bdca39d4bd82a1cf1334c08 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 =