mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-02-03 04:39:12 +00:00
Fix CME in monitor's set of attached computers
We're very inconsistent with whether we use locks or concurrent maps here. Something to sort out in the future, but for now add some missing @GuardedBy annotations.
This commit is contained in:
parent
c1628d077a
commit
8c8924f54e
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.peripheral.modem;
|
package dan200.computercraft.shared.peripheral.modem;
|
||||||
|
|
||||||
|
import com.google.errorprone.annotations.concurrent.GuardedBy;
|
||||||
import dan200.computercraft.api.lua.LuaException;
|
import dan200.computercraft.api.lua.LuaException;
|
||||||
import dan200.computercraft.api.lua.LuaFunction;
|
import dan200.computercraft.api.lua.LuaFunction;
|
||||||
import dan200.computercraft.api.network.Packet;
|
import dan200.computercraft.api.network.Packet;
|
||||||
@ -85,7 +86,7 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public abstract class ModemPeripheral implements IPeripheral, PacketSender, PacketReceiver {
|
public abstract class ModemPeripheral implements IPeripheral, PacketSender, PacketReceiver {
|
||||||
private @Nullable PacketNetwork network;
|
private @Nullable PacketNetwork network;
|
||||||
private final Set<IComputerAccess> computers = new HashSet<>(1);
|
private final @GuardedBy("computers") Set<IComputerAccess> computers = new HashSet<>(1);
|
||||||
private final ModemState state;
|
private final ModemState state;
|
||||||
|
|
||||||
protected ModemPeripheral(ModemState state) {
|
protected ModemPeripheral(ModemState state) {
|
||||||
|
@ -25,8 +25,9 @@ import org.slf4j.Logger;
|
|||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.HashSet;
|
import java.util.Collections;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
public class MonitorBlockEntity extends BlockEntity {
|
public class MonitorBlockEntity extends BlockEntity {
|
||||||
@ -46,7 +47,7 @@ public class MonitorBlockEntity extends BlockEntity {
|
|||||||
private @Nullable ServerMonitor serverMonitor;
|
private @Nullable ServerMonitor serverMonitor;
|
||||||
private @Nullable ClientMonitor clientMonitor;
|
private @Nullable ClientMonitor clientMonitor;
|
||||||
private @Nullable MonitorPeripheral peripheral;
|
private @Nullable MonitorPeripheral peripheral;
|
||||||
private final Set<IComputerAccess> computers = new HashSet<>();
|
private final Set<IComputerAccess> computers = Collections.newSetFromMap(new ConcurrentHashMap<>());
|
||||||
|
|
||||||
private boolean needsUpdate = false;
|
private boolean needsUpdate = false;
|
||||||
private boolean needsValidating = false;
|
private boolean needsValidating = false;
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
package dan200.computercraft.shared.peripheral.speaker;
|
package dan200.computercraft.shared.peripheral.speaker;
|
||||||
|
|
||||||
|
import com.google.errorprone.annotations.concurrent.GuardedBy;
|
||||||
import dan200.computercraft.api.lua.ILuaContext;
|
import dan200.computercraft.api.lua.ILuaContext;
|
||||||
import dan200.computercraft.api.lua.LuaException;
|
import dan200.computercraft.api.lua.LuaException;
|
||||||
import dan200.computercraft.api.lua.LuaFunction;
|
import dan200.computercraft.api.lua.LuaFunction;
|
||||||
@ -57,7 +58,7 @@ public abstract class SpeakerPeripheral implements IPeripheral {
|
|||||||
public static final int SAMPLE_RATE = 48000;
|
public static final int SAMPLE_RATE = 48000;
|
||||||
|
|
||||||
private final UUID source = UUID.randomUUID();
|
private final UUID source = UUID.randomUUID();
|
||||||
private final Set<IComputerAccess> computers = new HashSet<>();
|
private final @GuardedBy("computers") Set<IComputerAccess> computers = new HashSet<>();
|
||||||
|
|
||||||
private long clock = 0;
|
private long clock = 0;
|
||||||
private long lastPositionTime;
|
private long lastPositionTime;
|
||||||
|
Loading…
Reference in New Issue
Block a user