RustDDS icon indicating copy to clipboard operation
RustDDS copied to clipboard

Implement a background transmit queue for Writer.

Open jhelovuo opened this issue 1 year ago • 2 comments

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.

jhelovuo avatar Mar 09 '23 17:03 jhelovuo

Hey @jhelovuo ! Would adding a polling function to poll from the queue with a timeout help for the same?

jd509 avatar Mar 13 '23 10:03 jd509

I do not understand your suggestion. Please elaborate.

jhelovuo avatar Mar 13 '23 12:03 jhelovuo