What was the rationale for the CSP implementation to cancel pending puts when a channel is closed? This makes it really easy to lose messages when shutting down a topology.
If you have three channels piped into each other, A, B, and C, and you close A while B has messages in its buffer, then: • A closes, causing • B and C to close • Then all the messages in Bs buffer cannot be put on C and are lost
this will be fixed in the next promesa release
Hmm, looks interesting what you saying. I don't have a concrete rationale right now, i need to check it. But the case you explains is pretty common so i think we should allow have pending puts and takes.
thanks for raising this