v0.6.0
RPC4 handlers now carry user context
RegisterFunction, RegisterSlot, RegisterBlockingFunction and the RPC4GlobalRegistration handler constructors now take an opaque void *context that is passed back to the handler on every invocation. This removes the need for file-static global pointers to route an RPC back to an object instance — each registration carries its own context, so the same handler can serve multiple object instances under one identifier. The void* approach keeps RPC4 free of external dependencies. (#4, #5)
Bug fixes
RakPeer::CloseConnectionno longer dereferences a nullrakNetSocketduring connection teardown (a pre-existing crash in release builds, where the assertion is compiled out); it now falls back to the primary socket.
Testing
- Added
RPC4ContextTestcovering slot, nonblocking, and blocking handler context. - Quarantined the flaky
ManyClientsOneServerDeallocateBlockingTestunder CI pending a pre-existing teardown-race fix (#7).
⚠️ Breaking changes
- RPC4 handler signatures gained a trailing
void *contextparameter, and the registration / global-registration functions take a context argument. There are no compatibility overloads — update your handlers and registration calls (passnullptrwhen no context is needed).
Full changelog: v0.5.1...v0.6.0