Skip to content

Commit e557e9d

Browse files
authored
Merge pull request #294 from benaclejames/fix/osc-recv-exception
fix(osc): Fixed issue where cancelled task in OscRecvService would throw exception
2 parents 6483af4 + 0ff5c58 commit e557e9d

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

VRCFaceTracking.Core/Services/OscRecvService.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,12 @@ protected async override Task ExecuteAsync(CancellationToken stoppingToken)
113113
continue;
114114
}
115115

116-
if (_recvSocket.Available > 0)
116+
try
117117
{
118-
try
118+
if (_recvSocket.Available > 0)
119119
{
120-
var bytesReceived = await _recvSocket.ReceiveAsync(_recvBuffer, SocketFlags.None, _linkedToken.Token);
120+
var bytesReceived =
121+
await _recvSocket.ReceiveAsync(_recvBuffer, SocketFlags.None, _linkedToken.Token);
121122
var offset = 0;
122123
var newMsg = OscMessage.TryParseOsc(_recvBuffer, bytesReceived, ref offset);
123124
if (newMsg == null)
@@ -127,21 +128,21 @@ protected async override Task ExecuteAsync(CancellationToken stoppingToken)
127128

128129
OnMessageReceived(newMsg);
129130
}
130-
catch (Exception e)
131+
else
131132
{
132-
// We don't care about operation cancellations as they're intentional and carefully controlled
133-
if (e.GetType() == typeof(OperationCanceledException))
134-
{
135-
continue;
136-
}
137-
138-
_logger.LogError("Error encountered in OSC Receive thread: {e}", e);
139-
SentrySdk.CaptureException(e, scope => scope.SetExtra("recvBuffer", _recvBuffer));
133+
await Task.Delay(100, _linkedToken.Token);
140134
}
141135
}
142-
else
136+
catch (Exception e)
143137
{
144-
await Task.Delay(100, _linkedToken.Token);
138+
// We don't care about operation cancellations as they're intentional and carefully controlled
139+
if (e.GetType() == typeof(OperationCanceledException) || e.GetType() == typeof(TaskCanceledException))
140+
{
141+
continue;
142+
}
143+
144+
_logger.LogError("Error encountered in OSC Receive thread: {e}", e);
145+
SentrySdk.CaptureException(e, scope => scope.SetExtra("recvBuffer", _recvBuffer));
145146
}
146147
}
147148
}

0 commit comments

Comments
 (0)