Azure / go-amqp

AMQP 1.0 client library for Go.
https://github.com/Azure/go-amqp
MIT License
104 stars 56 forks source link

Fix potential hang in Sender.Send() #306

Closed jhendrixMSFT closed 1 year ago

jhendrixMSFT commented 1 year ago

There were two observers of env.Sent, the session mux and the sender. If the sender was the first to read from the channel, this would cause the session mux to be blocked. In order to support multiple observers, the channels must be treated as semaphores which are signaled when closed. Don't terminate a session's mux if a transfer wasn't sent due to context cancellation/timeout (this is not terminal).

jhendrixMSFT commented 1 year ago

/azp run

azure-pipelines[bot] commented 1 year ago
Azure Pipelines successfully started running 1 pipeline(s).