in src/NMS.AMQP/NmsContext.cs [380:413]
public async Task CloseInternal(bool sync)
{
NMSException failure = null;
try
{
if (sync)
session?.Close();
else
await (session?.CloseAsync() ?? Task.CompletedTask).Await();
} catch (NMSException jmse)
{
failure = jmse;
}
if (connectionRefCount.DecrementAndGet() == 0) {
try
{
if (sync)
connection.Close();
else
await connection.CloseAsync().Await();
} catch (NMSException jmse) {
if (failure == null)
{
failure = jmse;
}
}
}
if (failure != null) {
throw failure;
}
}