ModernUO/Projects
Kamron Batman 2d9d83b2fd
fix(login): finish pending password writes on a normal shutdown
Exit() was never wired, so it was dead code either way. Wiring it correctly
depends on which teardown path is running.

On a normal shutdown EventSink.Shutdown fires on the game thread after the
loop has stopped, which is the last chance pending work gets: results the
worker already posted are sitting on a loop context nothing will pump again.
So the thread is stopped, the context drained once, and queued writes are
computed and applied in place. Verifies are dropped instead -- they only
decide a login, and every connection is closing.

On a crash there is no usable game thread, so nothing may be applied and the
thread is simply stopped. Subscribed separately because HandleClosed skips
InvokeShutdown when _crashed is set, which would otherwise leave the crash
path unhandled entirely.

Wired from AccountHandler.Initialize rather than a Configure on the worker:
AssemblyHandler.AddMethods binds Static | Public, so a Configure on an
internal type is never discovered.
2026-08-08 21:54:03 -07:00
..
Application fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
BuildTool fix: Require only runtime packages on Linux, and check ICU and tzdata the way the runtime does (#2561) 2026-08-07 15:03:08 -07:00
Logger fix: Bumps dependencies. (#2531) 2026-07-14 15:17:55 -07:00
Server perf(login): verify Argon2 passwords on a parked worker thread 2026-08-08 10:50:25 -07:00
Server.Tests feat(network): allowlist false-positive IPs, escalate on behavior (#2556) 2026-07-30 23:12:17 -07:00
UOContent fix(login): finish pending password writes on a normal shutdown 2026-08-08 21:54:03 -07:00
UOContent.Tests perf(login): move password writes off-loop too, behind one mechanism 2026-08-08 12:25:49 -07:00