mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-17 13:19:52 +01:00
Don't redundantly use wakeful IO executor.
This commit is contained in:
@@ -27,6 +27,7 @@ import org.briarproject.bramble.api.properties.TransportProperties;
|
|||||||
import org.briarproject.bramble.api.properties.TransportPropertyManager;
|
import org.briarproject.bramble.api.properties.TransportPropertyManager;
|
||||||
import org.briarproject.bramble.api.system.Clock;
|
import org.briarproject.bramble.api.system.Clock;
|
||||||
import org.briarproject.bramble.api.system.TaskScheduler;
|
import org.briarproject.bramble.api.system.TaskScheduler;
|
||||||
|
import org.briarproject.bramble.api.system.Wakeful;
|
||||||
import org.briarproject.bramble.api.system.WakefulIoExecutor;
|
import org.briarproject.bramble.api.system.WakefulIoExecutor;
|
||||||
|
|
||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
@@ -57,7 +58,7 @@ class PollerImpl implements Poller, EventListener {
|
|||||||
|
|
||||||
private static final Logger LOG = getLogger(PollerImpl.class.getName());
|
private static final Logger LOG = getLogger(PollerImpl.class.getName());
|
||||||
|
|
||||||
private final Executor wakefulIoExecutor;
|
private final Executor ioExecutor, wakefulIoExecutor;
|
||||||
private final TaskScheduler scheduler;
|
private final TaskScheduler scheduler;
|
||||||
private final ConnectionManager connectionManager;
|
private final ConnectionManager connectionManager;
|
||||||
private final ConnectionRegistry connectionRegistry;
|
private final ConnectionRegistry connectionRegistry;
|
||||||
@@ -70,7 +71,8 @@ class PollerImpl implements Poller, EventListener {
|
|||||||
private final Map<TransportId, ScheduledPollTask> tasks;
|
private final Map<TransportId, ScheduledPollTask> tasks;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
PollerImpl(@WakefulIoExecutor Executor wakefulIoExecutor,
|
PollerImpl(@IoExecutor Executor ioExecutor,
|
||||||
|
@WakefulIoExecutor Executor wakefulIoExecutor,
|
||||||
TaskScheduler scheduler,
|
TaskScheduler scheduler,
|
||||||
ConnectionManager connectionManager,
|
ConnectionManager connectionManager,
|
||||||
ConnectionRegistry connectionRegistry,
|
ConnectionRegistry connectionRegistry,
|
||||||
@@ -78,6 +80,7 @@ class PollerImpl implements Poller, EventListener {
|
|||||||
TransportPropertyManager transportPropertyManager,
|
TransportPropertyManager transportPropertyManager,
|
||||||
SecureRandom random,
|
SecureRandom random,
|
||||||
Clock clock) {
|
Clock clock) {
|
||||||
|
this.ioExecutor = ioExecutor;
|
||||||
this.wakefulIoExecutor = wakefulIoExecutor;
|
this.wakefulIoExecutor = wakefulIoExecutor;
|
||||||
this.scheduler = scheduler;
|
this.scheduler = scheduler;
|
||||||
this.connectionManager = connectionManager;
|
this.connectionManager = connectionManager;
|
||||||
@@ -190,8 +193,8 @@ class PollerImpl implements Poller, EventListener {
|
|||||||
// it will abort safely when it finds it's been replaced
|
// it will abort safely when it finds it's been replaced
|
||||||
if (scheduled != null) scheduled.future.cancel(false);
|
if (scheduled != null) scheduled.future.cancel(false);
|
||||||
PollTask task = new PollTask(p, due, randomiseNext);
|
PollTask task = new PollTask(p, due, randomiseNext);
|
||||||
Future<?> future = scheduler.schedule(task, wakefulIoExecutor,
|
Future<?> future = scheduler.schedule(task, ioExecutor, delay,
|
||||||
delay, MILLISECONDS);
|
MILLISECONDS);
|
||||||
tasks.put(t, new ScheduledPollTask(task, future));
|
tasks.put(t, new ScheduledPollTask(task, future));
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
private final Future<?> future = context.mock(Future.class);
|
private final Future<?> future = context.mock(Future.class);
|
||||||
private final SecureRandom random;
|
private final SecureRandom random;
|
||||||
|
|
||||||
|
private final Executor ioExecutor = new ImmediateExecutor();
|
||||||
private final Executor wakefulIoExecutor = new ImmediateExecutor();
|
private final Executor wakefulIoExecutor = new ImmediateExecutor();
|
||||||
private final TransportId transportId = getTransportId();
|
private final TransportId transportId = getTransportId();
|
||||||
private final ContactId contactId = getContactId();
|
private final ContactId contactId = getContactId();
|
||||||
@@ -74,9 +75,9 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
poller = new PollerImpl(wakefulIoExecutor, scheduler, connectionManager,
|
poller = new PollerImpl(ioExecutor, wakefulIoExecutor, scheduler,
|
||||||
connectionRegistry, pluginManager, transportPropertyManager,
|
connectionManager, connectionRegistry, pluginManager,
|
||||||
random, clock);
|
transportPropertyManager, random, clock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -234,7 +235,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) pollingInterval),
|
with(ioExecutor), with((long) pollingInterval),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
}});
|
}});
|
||||||
@@ -263,7 +264,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) pollingInterval),
|
with(ioExecutor), with((long) pollingInterval),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
// Second event
|
// Second event
|
||||||
@@ -306,7 +307,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) pollingInterval),
|
with(ioExecutor), with((long) pollingInterval),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
// Second event
|
// Second event
|
||||||
@@ -323,7 +324,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
will(returnValue(now + 1));
|
will(returnValue(now + 1));
|
||||||
oneOf(future).cancel(false);
|
oneOf(future).cancel(false);
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) pollingInterval - 2),
|
with(ioExecutor), with((long) pollingInterval - 2),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
}});
|
}});
|
||||||
|
|
||||||
@@ -350,7 +351,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with(0L), with(MILLISECONDS));
|
with(ioExecutor), with(0L), with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
will(new RunAction());
|
will(new RunAction());
|
||||||
// Running the polling task schedules the next polling task
|
// Running the polling task schedules the next polling task
|
||||||
@@ -361,7 +362,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) (pollingInterval * 0.5)),
|
with(ioExecutor), with((long) (pollingInterval * 0.5)),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
// Get the transport properties and connected contacts
|
// Get the transport properties and connected contacts
|
||||||
@@ -394,7 +395,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with(0L), with(MILLISECONDS));
|
with(ioExecutor), with(0L), with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
will(new RunAction());
|
will(new RunAction());
|
||||||
// Running the polling task schedules the next polling task
|
// Running the polling task schedules the next polling task
|
||||||
@@ -405,7 +406,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) (pollingInterval * 0.5)),
|
with(ioExecutor), with((long) (pollingInterval * 0.5)),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
// Get the transport properties and connected contacts
|
// Get the transport properties and connected contacts
|
||||||
@@ -436,7 +437,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with(0L), with(MILLISECONDS));
|
with(ioExecutor), with(0L), with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
// The plugin is deactivated before the task runs - cancel the task
|
// The plugin is deactivated before the task runs - cancel the task
|
||||||
oneOf(future).cancel(false);
|
oneOf(future).cancel(false);
|
||||||
@@ -460,7 +461,7 @@ public class PollerImplTest extends BrambleMockTestCase {
|
|||||||
oneOf(clock).currentTimeMillis();
|
oneOf(clock).currentTimeMillis();
|
||||||
will(returnValue(now));
|
will(returnValue(now));
|
||||||
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
oneOf(scheduler).schedule(with(any(Runnable.class)),
|
||||||
with(wakefulIoExecutor), with((long) pollingInterval),
|
with(ioExecutor), with((long) pollingInterval),
|
||||||
with(MILLISECONDS));
|
with(MILLISECONDS));
|
||||||
will(returnValue(future));
|
will(returnValue(future));
|
||||||
}});
|
}});
|
||||||
|
|||||||
Reference in New Issue
Block a user