Description
In shared_memory.rs, the multi-server implementation:
- Registers connections but never reads or forwards messages from them
handle_connection inserts into the connections map but has no receive loop
start_multi_server monitoring task never delivers messages to the channel
Additionally, close() does not set the ring buffer shutdown flag, causing blocked peers to spin until the 5-second timeout.
Impact
Multi-client shared memory mode (if invoked via the trait interface) would hang indefinitely with no messages delivered.
Suggested Fix
- Add a receive loop in
handle_connection that calls receive_message() and sends on message_sender
- Set
shutdown flag in close() (mirror shared_memory_blocking.rs:848–857)
Found during release polish review
Description
In
shared_memory.rs, the multi-server implementation:handle_connectioninserts into the connections map but has no receive loopstart_multi_servermonitoring task never delivers messages to the channelAdditionally,
close()does not set the ring buffershutdownflag, causing blocked peers to spin until the 5-second timeout.Impact
Multi-client shared memory mode (if invoked via the trait interface) would hang indefinitely with no messages delivered.
Suggested Fix
handle_connectionthat callsreceive_message()and sends onmessage_sendershutdownflag inclose()(mirrorshared_memory_blocking.rs:848–857)Found during release polish review