mirror of
https://github.com/SquidDev-CC/CC-Tweaked
synced 2025-01-23 15:36:54 +00:00
Fix several issues with the web emulator
- Bump TeaVM version to fix issues with locales and our "export" generation. - Fix TComputerThread not requeuing correctly.
This commit is contained in:
parent
b343c01216
commit
f8b7422294
@ -42,7 +42,6 @@ repositories {
|
||||
url "https://squiddev.cc/maven/"
|
||||
content {
|
||||
includeGroup("cc.tweaked")
|
||||
includeModule("org.squiddev", "Cobalt")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ mixinGradle = "0.7.+"
|
||||
nullAway = "0.9.9"
|
||||
spotless = "6.21.0"
|
||||
taskTree = "2.1.1"
|
||||
teavm = "0.10.0-SQUID.1"
|
||||
teavm = "0.10.0-SQUID.2"
|
||||
vanillaGradle = "0.2.1-SNAPSHOT"
|
||||
vineflower = "1.11.0"
|
||||
|
||||
|
@ -35,6 +35,7 @@ local term = _ENV
|
||||
-- @since 1.31
|
||||
-- @usage
|
||||
-- Redirect to a monitor on the right of the computer.
|
||||
--
|
||||
-- term.redirect(peripheral.wrap("right"))
|
||||
term.redirect = function(target)
|
||||
expect(1, target, "table")
|
||||
|
@ -28,6 +28,7 @@ public class TComputerThread implements ComputerScheduler {
|
||||
|
||||
private static final ArrayDeque<ExecutorImpl> executors = new ArrayDeque<>();
|
||||
private static final TimerHandler callback = TComputerThread::workOnce;
|
||||
private static boolean enqueued;
|
||||
|
||||
public TComputerThread(int threads) {
|
||||
}
|
||||
@ -38,6 +39,8 @@ public class TComputerThread implements ComputerScheduler {
|
||||
}
|
||||
|
||||
private static void workOnce() {
|
||||
enqueued = false;
|
||||
|
||||
var executor = executors.poll();
|
||||
if (executor == null) throw new IllegalStateException("Working, but executor is null");
|
||||
|
||||
@ -50,7 +53,14 @@ public class TComputerThread implements ComputerScheduler {
|
||||
}
|
||||
executor.afterWork();
|
||||
|
||||
if (!executors.isEmpty()) Callbacks.setImmediate(callback);
|
||||
if (!executors.isEmpty()) enqueue();
|
||||
}
|
||||
|
||||
private static void enqueue() {
|
||||
if (enqueued) return;
|
||||
|
||||
enqueued = true;
|
||||
Callbacks.setImmediate(callback);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -75,8 +85,8 @@ public class TComputerThread implements ComputerScheduler {
|
||||
if (onQueue) return;
|
||||
onQueue = true;
|
||||
|
||||
if (executors.isEmpty()) Callbacks.setImmediate(callback);
|
||||
executors.add(this);
|
||||
enqueue();
|
||||
}
|
||||
|
||||
void beforeWork() {
|
||||
|
Loading…
Reference in New Issue
Block a user