Skip to content

Commit a452bd1

Browse files
authored
fixing timeouts for ackable messages (#1576)
* fixing timeouts for ackable messages * fixing timeouts for ackable messages, refactoring to avoid future runtime exceptions * fixing timeouts for ackable messages, refactoring to avoid future runtime exceptions * fixing timeouts for ackable messages, refactoring to avoid future runtime exceptions * fixing timeouts for ackable messages, refactoring to avoid future runtime exceptions * reworking the fix with simplified Clone implementation * reworking the fix with simplified Clone implementation * reworking the fix with simplified Clone implementation & cleanup * addressing code review * addressing code review * removing an extra space
1 parent e672173 commit a452bd1

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

src/Microsoft.Azure.SignalR.Common/ServiceConnections/MultiEndpointMessageWriter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public async Task<bool> WriteAckableMessageAsync(ServiceMessage serviceMessage,
4242

4343
var writeMessageTask = WriteMultiEndpointMessageAsync(serviceMessage, async connection =>
4444
{
45-
var succeeded = await connection.WriteAckableMessageAsync(serviceMessage, cancellationToken);
45+
var succeeded = await connection.WriteAckableMessageAsync(serviceMessage.Clone(), cancellationToken);
4646
if (succeeded)
4747
{
4848
tcs.TrySetResult(true);

src/Microsoft.Azure.SignalR.Protocols/ServiceMessage.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ namespace Microsoft.Azure.SignalR.Protocol
1212
/// </summary>
1313
public abstract class ServiceMessage
1414
{
15+
/// <summary>
16+
/// Clone should make a copy of everything that may get modified throughout the lifetime of the message
17+
/// The default implementation is a shallow copy as it fits the current needs.
18+
/// </summary>
19+
public virtual ServiceMessage Clone() => MemberwiseClone() as ServiceMessage;
1520
}
1621

1722
/// <summary>

0 commit comments

Comments
 (0)