Multi-Hoster-Upload/tasks
Administrator 38ecc6a4cb perf(queue): coalesce removeFromQueueOnDone removals into one filter pass
handleProgress on a 'done' event with removeFromQueueOnDone=true was
calling queueJobs.filter() once per event. With 500 parallel jobs all
finishing at roughly the same time, that's 500 × O(N) = O(N²) work
synchronously on the IPC handler thread — visible as a brief UI freeze
when a big batch completes.

Coalesce into one microtask: removeJobFromIndex + selection cleanup
stay synchronous (so subsequent lookups see the right state), but the
array rewrite is deferred to a single filter against a Set of all
ids that came in this tick. JS microtask runs after the sync IPC
batch, so within one batch-of-events we get one filter pass instead
of N.

beforeunload drains the pending set synchronously before persisting
so removeFromQueueOnDone=true users don't see jobs reappear after
restart that they expected to be gone.
2026-04-28 03:37:13 +02:00
..
lessons.md fix(rotation): session-learning for account failures is now complete 2026-04-21 17:03:59 +02:00
todo.md perf(queue): coalesce removeFromQueueOnDone removals into one filter pass 2026-04-28 03:37:13 +02:00