ModernUO/Projects/Server/Console
Kamron Batman 2d4500bf40 fix(console): make ConsoleInputPump cleanup unconditional; document single-caller contract
Wrap the Run() loop in try/finally so cleanup (_running = false;
ReleasePendingPrompt(null)) always executes, even if the injected
lookup throws. Previously a throwing lookup escaped the loop and left
any pending ReadLine() caller blocked forever. Also fold the lookup
call into the same try/catch as the handler invocation so a bad
command is swallowed without tearing down the reader loop.

Document via XML comments that ReadLine() supports a single sequential
caller (not concurrent callers) and that command handlers dispatched
by Run() execute on the reader thread and must not call ReadLine().

Add a regression test proving a throwing lookup neither hangs a
pending prompt nor kills the reader loop. Also drop an unused
System.Text using from the test file.
2026-07-15 23:32:06 -07:00
..
ConsoleInputHandler.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
ConsoleInputPump.cs fix(console): make ConsoleInputPump cleanup unconditional; document single-caller contract 2026-07-15 23:32:06 -07:00
HeadlessConsoleInputException.cs feat(console): add Core.Headless flag and guard the exit-pause prompt 2026-07-15 23:32:06 -07:00