Expose option to cancel inflight message (#466)

This commit is contained in:
Havret 2021-06-08 20:18:28 +02:00 коммит произвёл GitHub
Родитель 9d1878bbfd
Коммит 44913cab3c
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 8 добавлений и 3 удалений

Просмотреть файл

@ -212,7 +212,7 @@ namespace Amqp
}
catch (TimeoutException)
{
this.OnTimeout(message);
this.Cancel(message);
throw;
}
}

Просмотреть файл

@ -110,7 +110,7 @@ namespace Amqp
bool signaled = acked.WaitOne(waitMilliseconds);
if (!signaled)
{
this.OnTimeout(message);
this.Cancel(message);
throw new TimeoutException(Fx.Format(SRAmqp.AmqpTimeout, "send", waitMilliseconds, "message"));
}
@ -215,7 +215,12 @@ namespace Amqp
this.WriteDelivery(delivery);
}
void OnTimeout(Message message)
/// <summary>
/// Removes the message from the internal outgoing list if it hasn't been sent yet.
/// Issues released disposition frame for inflight message.
/// </summary>
/// <param name="message">The message to cancel.</param>
public void Cancel(Message message)
{
lock (this.ThisLock)
{