Skip to content

Commit b3f3965

Browse files
committed
Remove locking in AsyncDefaultBasicConsumer and return task instead of await
1 parent e6fa149 commit b3f3965

File tree

1 file changed

+8
-31
lines changed

1 file changed

+8
-31
lines changed

projects/client/RabbitMQ.Client/src/client/api/AsyncDefaultBasicConsumer.cs

Lines changed: 8 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ namespace RabbitMQ.Client
77
{
88
public class AsyncDefaultBasicConsumer : IBasicConsumer, IAsyncBasicConsumer
99
{
10-
public readonly object m_eventLock = new object();
11-
public AsyncEventHandler<ConsumerEventArgs> m_consumerCancelled;
12-
1310
/// <summary>
1411
/// Creates a new instance of an <see cref="DefaultBasicConsumer"/>.
1512
/// </summary>
@@ -53,23 +50,7 @@ public AsyncDefaultBasicConsumer(IModel model)
5350
/// <summary>
5451
/// Signalled when the consumer gets cancelled.
5552
/// </summary>
56-
public event AsyncEventHandler<ConsumerEventArgs> ConsumerCancelled
57-
{
58-
add
59-
{
60-
lock (m_eventLock)
61-
{
62-
m_consumerCancelled += value;
63-
}
64-
}
65-
remove
66-
{
67-
lock (m_eventLock)
68-
{
69-
m_consumerCancelled -= value;
70-
}
71-
}
72-
}
53+
public event AsyncEventHandler<ConsumerEventArgs> ConsumerCancelled;
7354

7455
/// <summary>
7556
/// Retrieve the <see cref="IModel"/> this consumer is associated with,
@@ -83,18 +64,18 @@ public event AsyncEventHandler<ConsumerEventArgs> ConsumerCancelled
8364
/// See <see cref="HandleBasicCancelOk"/> for notification of consumer cancellation due to basicCancel
8465
/// </summary>
8566
/// <param name="consumerTag">Consumer tag this consumer is registered.</param>
86-
public virtual async Task HandleBasicCancel(string consumerTag)
67+
public virtual Task HandleBasicCancel(string consumerTag)
8768
{
88-
await OnCancel().ConfigureAwait(false);
69+
return OnCancel();
8970
}
9071

9172
/// <summary>
9273
/// Called upon successful deregistration of the consumer from the broker.
9374
/// </summary>
9475
/// <param name="consumerTag">Consumer tag this consumer is registered.</param>
95-
public virtual async Task HandleBasicCancelOk(string consumerTag)
76+
public virtual Task HandleBasicCancelOk(string consumerTag)
9677
{
97-
await OnCancel().ConfigureAwait(false);
78+
return OnCancel();
9879
}
9980

10081
/// <summary>
@@ -133,10 +114,10 @@ public virtual Task HandleBasicDeliver(string consumerTag,
133114
/// </summary>
134115
/// <param name="model"> Common AMQP model.</param>
135116
/// <param name="reason"> Information about the reason why a particular model, session, or connection was destroyed.</param>
136-
public virtual async Task HandleModelShutdown(object model, ShutdownEventArgs reason)
117+
public virtual Task HandleModelShutdown(object model, ShutdownEventArgs reason)
137118
{
138119
ShutdownReason = reason;
139-
await OnCancel().ConfigureAwait(false);
120+
return OnCancel();
140121
}
141122

142123
/// <summary>
@@ -148,11 +129,7 @@ public virtual async Task HandleModelShutdown(object model, ShutdownEventArgs re
148129
public virtual async Task OnCancel()
149130
{
150131
IsRunning = false;
151-
AsyncEventHandler<ConsumerEventArgs> handler;
152-
lock (m_eventLock)
153-
{
154-
handler = m_consumerCancelled;
155-
}
132+
var handler = ConsumerCancelled;
156133
if (handler != null)
157134
{
158135
foreach (AsyncEventHandler<ConsumerEventArgs> h in handler.GetInvocationList())

0 commit comments

Comments
 (0)