ModernUO/Projects
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
..
Application fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
BuildTool fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Logger fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Server fix(console): make ConsoleInputPump cleanup unconditional; document single-caller contract 2026-07-15 23:32:06 -07:00
Server.Tests fix(console): make ConsoleInputPump cleanup unconditional; document single-caller contract 2026-07-15 23:32:06 -07:00
UOContent fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
UOContent.Tests fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00