Skip to content

Commit 2d55941

Browse files
committed
fix useEffect
1 parent 87b5af1 commit 2d55941

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

components/visuals/forth/components.tsx

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -553,12 +553,16 @@ export function Tokenizer() {
553553

554554
// Auto-start tokenization loop
555555
useEffect(() => {
556+
let shouldContinue = true;
556557
const loop = async () => {
557-
while (true) {
558+
while (shouldContinue) {
558559
await runTokenizer();
559560
}
560561
};
561562
loop();
563+
return () => {
564+
shouldContinue = false;
565+
};
562566
}, []);
563567

564568
const charNodes: ReactNode[] = [];
@@ -714,10 +718,16 @@ export function Compiler() {
714718
};
715719

716720
useEffect(() => {
721+
let shouldContinue = true;
717722
const loop = async () => {
718-
while (true) {
719-
await runCompiler();
723+
while (shouldContinue) {
724+
while (true) {
725+
await runCompiler();
726+
}
720727
}
728+
return () => {
729+
shouldContinue = false;
730+
};
721731
};
722732
loop();
723733
}, []);
@@ -881,10 +891,14 @@ export function VM() {
881891
};
882892

883893
useEffect(() => {
894+
let shouldContinue = true;
884895
const loop = async () => {
885-
while (true) {
896+
while (shouldContinue) {
886897
await runVM();
887898
}
899+
return () => {
900+
shouldContinue = false;
901+
};
888902
};
889903
loop();
890904
}, []);

0 commit comments

Comments
 (0)