mirror of
https://github.com/logos-messaging/sds-go-bindings.git
synced 2026-07-24 00:43:17 +00:00
sds_destroy is now non-blocking and recycles the context, delivering the drain outcome via the callback. Cleanup blocks on that callback through sdsCall, which also backpressures NewReliabilityManager against recycle so the fixed context pool cannot be exhausted under create/destroy churn. Guard rmRegistry with a RWMutex: it is written by register/unregister (Create/Cleanup) and read by sdsGlobalEventCallback on the nim-ffi event thread, which otherwise triggered a fatal "concurrent map read and map write" once multiple managers ran concurrently. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>