RustDDS
RustDDS copied to clipboard
Implement a background transmit queue for Writer.
Currently, sending fragmented data pushes a large number of messages to sending UDP socket. This may block due to kernel send buffer limit. The Messages to be sent should be queued inside Writer, or actually only handles to messages (Timestamp) and other send parameters (unicast/multicast) should be queued. DATA/DATAFRAG messages should be generated from DDSCache by the transmitter queue processor. This should be a timed event in Writer, or better yet, mio-polled write readiness of the sending socket.
This should also eliminate duplicate code from Writer, specifically in sending new samples from DataWriter and sending samples in response to ACKNACK.
Hey @jhelovuo ! Would adding a polling function to poll from the queue with a timeout help for the same?
I do not understand your suggestion. Please elaborate.