Summary
QfcFormController.UndoConsumer() contains a loop that never terminates. Once its 10-second
threshold is crossed the loop stops awaiting and busy-spins on a background thread for the remaining
lifetime of the process.
Environment
(not provided in potential file)
Steps to Reproduce
(not provided in potential file)
Expected Behavior
The loop should terminate when the queue is drained and the idle threshold has elapsed. The condition
appears to have been intended as a conjunction, for example while (!_undoQueue.IsCompleted && !exit),
and the empty-queue path should continue to yield rather than spin.
Actual Behavior
(not provided in potential file)
Logs / Screenshots
(not provided in potential file)
Impact / Severity
(not provided in potential file)
Source
From: docs/features/potential/2026-08-07-quickfiler-undoconsumer-nonterminating-loop.md
Summary
QfcFormController.UndoConsumer()contains a loop that never terminates. Once its 10-secondthreshold is crossed the loop stops awaiting and busy-spins on a background thread for the remaining
lifetime of the process.
Environment
(not provided in potential file)
Steps to Reproduce
(not provided in potential file)
Expected Behavior
The loop should terminate when the queue is drained and the idle threshold has elapsed. The condition
appears to have been intended as a conjunction, for example
while (!_undoQueue.IsCompleted && !exit),and the empty-queue path should continue to yield rather than spin.
Actual Behavior
(not provided in potential file)
Logs / Screenshots
(not provided in potential file)
Impact / Severity
(not provided in potential file)
Source
From: docs/features/potential/2026-08-07-quickfiler-undoconsumer-nonterminating-loop.md