From 5f284bab15e91be3cc5dd87d4f7b7277bd999e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 13 Feb 2022 16:42:22 +0100 Subject: [PATCH] Avoid controller scan scheduling ping-pong. --- .../li/cil/oc2/common/bus/CommonDeviceBusController.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java index 210f931a..dc24a39c 100644 --- a/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java +++ b/src/main/java/li/cil/oc2/common/bus/CommonDeviceBusController.java @@ -84,8 +84,12 @@ public class CommonDeviceBusController implements DeviceBusController { @Override public void scheduleBusScan() { - scanDelay = 0; // scan as soon as possible - state = BusState.SCAN_PENDING; + // For multiple controllers, avoid ping-ponging immediate scans when controllers + // detect each other during their scans. + if (state != BusState.MULTIPLE_CONTROLLERS) { + scanDelay = 0; // scan as soon as possible + state = BusState.SCAN_PENDING; + } } @Override