Skip to content

Commit e8b4257

Browse files
committed
* Refactor Channel.OpenAsync to move pub conf code to dedicated file.
1 parent 36ea9b4 commit e8b4257

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

projects/RabbitMQ.Client/Impl/Channel.PublisherConfirms.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,20 @@ internal partial class Channel : IChannel, IRecoverable
4444
private ulong _nextPublishSeqNo = 0;
4545
private readonly SemaphoreSlim _confirmSemaphore = new(1, 1);
4646
private readonly ConcurrentDictionary<ulong, TaskCompletionSource<bool>> _confirmsTaskCompletionSources = new();
47+
48+
private void ConfigurePublisherConfirmations(bool publisherConfirmationsEnabled, bool publisherConfirmationTrackingEnabled)
49+
{
50+
_publisherConfirmationsEnabled = publisherConfirmationsEnabled;
51+
_publisherConfirmationTrackingEnabled = publisherConfirmationTrackingEnabled;
52+
}
53+
54+
private async Task MaybeConfirmSelect(CancellationToken cancellationToken)
55+
{
56+
if (_publisherConfirmationsEnabled)
57+
{
58+
await ConfirmSelectAsync(_publisherConfirmationTrackingEnabled, cancellationToken)
59+
.ConfigureAwait(false);
60+
}
61+
}
4762
}
4863
}

projects/RabbitMQ.Client/Impl/Channel.cs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -367,8 +367,7 @@ internal async Task<IChannel> OpenAsync(bool publisherConfirmationsEnabled = fal
367367
bool publisherConfirmationTrackingEnabled = false,
368368
CancellationToken cancellationToken = default)
369369
{
370-
_publisherConfirmationsEnabled = publisherConfirmationsEnabled;
371-
_publisherConfirmationTrackingEnabled = publisherConfirmationTrackingEnabled;
370+
ConfigurePublisherConfirmations(publisherConfirmationsEnabled, publisherConfirmationTrackingEnabled);
372371

373372
bool enqueued = false;
374373
var k = new ChannelOpenAsyncRpcContinuation(ContinuationTimeout, cancellationToken);
@@ -386,11 +385,8 @@ await ModelSendAsync(in method, k.CancellationToken)
386385
bool result = await k;
387386
Debug.Assert(result);
388387

389-
if (_publisherConfirmationsEnabled)
390-
{
391-
await ConfirmSelectAsync(publisherConfirmationTrackingEnabled, cancellationToken)
392-
.ConfigureAwait(false);
393-
}
388+
await MaybeConfirmSelect(cancellationToken)
389+
.ConfigureAwait(false);
394390
}
395391
finally
396392
{

0 commit comments

Comments
 (0)