RSDK-654 - refactor message handling for streaming#184
Conversation
|
Ethan (@stuqdog) - I haven't dug into the code, but I have pulled this PR locally and confirmed that in my repro environment, I no longer see the arm wait until all the points have been sent on the stream. So this looks promising! |
Andrew C. Morrow (acmorrow)
left a comment
There was a problem hiding this comment.
I took a pass through this, but it has been over a year since I wrote any production rust. You might want Nicolas Menard (@npmenard) to also take a look, especially since he did the BiDi work in the MicroRDK and knows the async rust gRPC interaction quite well.
|
|
||
| /// Signals the end of the client's send stream (the gRPC CloseSend equivalent). | ||
| // note(ethan): the variable that used to carry this signal was named | ||
| // `it_was_all_a_stream` — the best variable name I've ever shipped into production. |
There was a problem hiding this comment.
I love that this is a memorial to a memorial.
There was a problem hiding this comment.
I just couldn't let it go haha
There was a problem hiding this comment.
I understand completely! Long ago, in a closed source system, I managed to slip in the following haiku, which I now have an opportunity to bring back to life:
Exception rising
On the signal handler stack
Portending sorrow
Refactors message handling to send messages asynchronously as soon as they come in, defer sending EOS until client messages are demonstrably completed, and only as its own frame.