Skip to content

v0.6.0

Choose a tag to compare

@Segfaultd Segfaultd released this 02 Jun 17:44
· 34 commits to master since this release

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::CloseConnection no longer dereferences a null rakNetSocket during 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 RPC4ContextTest covering slot, nonblocking, and blocking handler context.
  • Quarantined the flaky ManyClientsOneServerDeallocateBlockingTest under CI pending a pre-existing teardown-race fix (#7).

⚠️ Breaking changes

  • RPC4 handler signatures gained a trailing void *context parameter, and the registration / global-registration functions take a context argument. There are no compatibility overloads — update your handlers and registration calls (pass nullptr when no context is needed).

Full changelog: v0.5.1...v0.6.0