diff --git a/src/main/java/dan200/computercraft/core/apis/OSAPI.java b/src/main/java/dan200/computercraft/core/apis/OSAPI.java index 72773d874..0542b9af0 100644 --- a/src/main/java/dan200/computercraft/core/apis/OSAPI.java +++ b/src/main/java/dan200/computercraft/core/apis/OSAPI.java @@ -203,8 +203,10 @@ public class OSAPI implements ILuaAPI { */ @LuaFunction public final int startTimer(double timer) throws LuaException { - timers.put(nextTimerToken, new Timer((int) Math.round(checkFinite(0, timer) / 0.05))); - return nextTimerToken++; + synchronized (timers) { + timers.put(nextTimerToken, new Timer((int) Math.round(checkFinite(0, timer) / 0.05))); + return nextTimerToken++; + } } /** @@ -217,7 +219,9 @@ public class OSAPI implements ILuaAPI { */ @LuaFunction public final void cancelTimer(int token) { - timers.remove(token); + synchronized (timers) { + timers.remove(token); + } } /**