belliottsmith commented on code in PR #28:
URL: https://github.com/apache/cassandra-accord/pull/28#discussion_r1089941484
##########
accord-core/src/test/java/accord/impl/basic/DelayedExecutorService.java:
##########
@@ -0,0 +1,80 @@
+package accord.impl.basic;
+
+import org.apache.cassandra.concurrent.FutureTask;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Random;
+import java.util.concurrent.AbstractExecutorService;
+import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
+import java.util.concurrent.TimeUnit;
+
+public class DelayedExecutorService extends AbstractExecutorService
+{
+ private static final int THREAD_SCHEDULING_OVERHEAD_MILLIS = 5;
+
+ private final PendingQueue pending;
+ private final Random random;
+
+ public DelayedExecutorService(PendingQueue pending, Random random)
+ {
+ this.pending = pending;
+ this.random = random;
+ }
+
+ @Override
+ protected <T> Task<T> newTaskFor(Runnable runnable, T value) {
+ return newTaskFor(Executors.callable(runnable, value));
+ }
+
+ @Override
+ protected <T> Task<T> newTaskFor(Callable<T> callable) {
+ return new Task<>(callable);
+ }
+
+ private Task<?> newTaskFor(Runnable command) {
+ return command instanceof Task ? (Task<?>) command :
newTaskFor(command, null);
+ }
+
+ @Override
+ public void execute(Runnable command) {
+ Task<?> task = newTaskFor(command);
+ int jitterMillis = THREAD_SCHEDULING_OVERHEAD_MILLIS +
random.nextInt(1000);
Review Comment:
I think it would be _preferable_ to use the same approach in both for
randomising, as far as possible, so we can trend towards sharing codebases as
much as possible.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]