Skip to content
Discussion options

You must be logged in to vote

@userNotFoundByDefault the limit is hard-coded at 10e5 (1,000,000) in packages/solid/src/reactive/signal.ts line 1355, inside writeSignal:

if (Updates!.length > 10e5) {
  Updates = [];
  if (IS_DEV) throw new Error("Potential Infinite Loop Detected.");
  throw new Error();
}

the destructive part is Updates = [] -- it wipes all pending computations before throwing, so you can't even recover. there's no config to raise or disable it.

your options:

1. batch() in chunks to reset the counter between flushes. each batch() call starts with a fresh Updates = [] (line 885 in signal.ts), so the count resets:

import { batch } from 'solid-js';

const CHUNK = 500_000;
for (let i = 0; i < cells.length; i 

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by userNotFoundByDefault
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants