You've already forked Arcturus-Morningstar-Extended
mirror of
https://github.com/duckietm/Arcturus-Morningstar-Extended.git
synced 2026-06-19 15:06:19 +00:00
af82352f24
#2 — tunable thread pools (sensible defaults kept): - io.packet.handler.threads overrides the packet-handler EventExecutorGroup size (default max(16, 2x cores)). - auth.http.pool.size overrides the auth HTTP pool max threads (default 16). #5 — Netty buffer pooling: - Make the crypto handlers pool-safe: GameByteEncryption/GameByteDecryption no longer call ByteBuf.array() on a readBytes-derived buffer (whose arrayOffset is non-zero under a pooled allocator, which would have read/encrypted the wrong region). They now copy the readable region into a plain byte[] (offset-safe) and wrap the result — also drops one intermediate buffer allocation. This is correct for the current unpooled allocator too. (ServerMessage uses its own Unpooled buffer, and ClientMessage reads via buffer methods, so both are already offset-safe.) - Add a shared channel allocator selected by io.netty.allocator.pooled (default false = unpooled-heap, unchanged). Set true for a pooled HEAP allocator (preferDirect=false, so array-backed paths keep working) to cut per-packet alloc/GC churn. Opt-in until validated under load with the Netty leak detector, since unreleased pooled buffers accumulate rather than being GC-reclaimed. New optional config keys (insert into emulator_settings to set/silence the "key not found" notice): io.packet.handler.threads, auth.http.pool.size, io.netty.allocator.pooled.