nolt
52950362ff
Document the cross-player persistence lock-ordering invariant
...
The packet handler funnel now holds each player's persistence lock for the
whole handler. Acquiring a second player's lock from inside a handler is
therefore a lock-ordering hazard; note the invariant on the guard method so a
future cross-player save cannot silently open an AB-BA cycle. Documentation
only, no behavioural change.
2026-08-13 08:46:48 +03:00
..
2026-07-27 01:02:02 +03:00
2026-08-13 08:45:29 +03:00
2026-08-04 21:44:12 +03:00
2026-07-14 19:00:35 +03:00
2026-07-21 22:42:25 +03:00
2026-07-23 11:38:08 +03:00
2026-07-27 00:54:16 +03:00
2026-08-13 08:46:47 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 01:03:46 +03:00
2026-08-04 21:44:12 +03:00
2026-07-31 15:09:32 +03:00
2026-07-31 15:09:32 +03:00
2026-08-04 21:44:12 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 01:02:02 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 00:54:17 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 00:54:16 +03:00
2026-07-14 19:00:35 +03:00
2026-07-20 23:33:55 +03:00
2026-07-23 11:38:08 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-23 11:35:43 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-23 11:38:08 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 00:54:16 +03:00
2026-07-27 00:54:16 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 00:54:16 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-08-13 08:46:48 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-27 01:02:02 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00
2026-07-14 19:00:35 +03:00