ModernUO/Projects/Server/Timer
Kamron Batman 47f972ec9d
fix: ClearAllTimers stops every timer in a slot, not just the first (#2723)
## Summary
`Timer.ClearAllTimers` walked each wheel slot with a `do/while` that read `node._nextTimer` but never advanced `node`. `Stop()` unlinks the head from its slot, so the second pass read a null successor from the same, now-detached node and exited. Only the first timer in every slot was stopped; the rest kept running.

The loop now reads the successor, stops the node, and advances.

Nothing in the repo calls `ClearAllTimers` today, so no running server is affected. It is public API for shards and tests.

## Tests
- `TimerTests.ClearAllTimers_StopsEveryTimerInASlot` puts three timers in the same slot, clears them, asserts none is `Running`, and slices past their due time. It fails without the fix.
- Server.Tests: all pass.
2026-10-18 20:10:19 -07:00
..
Timer.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Timer.DelayCall.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Timer.DelayStateCall.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Timer.Pool.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Timer.TimerWheel.cs fix: ClearAllTimers stops every timer in a slot, not just the first (#2723) 2026-10-18 20:10:19 -07:00
TimerExecutionToken.cs fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00