Browse Source
Merge pull request #2274 from AvaloniaUI/fixes/remote-protocol-deadlock
Fix deadlock in remote protocol.
pull/2275/head
Steven Kirk
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
4 additions and
3 deletions
-
src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs
|
|
|
@ -64,7 +64,7 @@ namespace Avalonia.Remote.Protocol |
|
|
|
|
|
|
|
public Task Send(object data) |
|
|
|
{ |
|
|
|
var tcs = new TaskCompletionSource<int>(); |
|
|
|
var tcs = new TaskCompletionSource<int>(TaskCreationOptions.RunContinuationsAsynchronously); |
|
|
|
lock (_lock) |
|
|
|
{ |
|
|
|
if (!_workerIsAlive) |
|
|
|
@ -79,8 +79,9 @@ namespace Avalonia.Remote.Protocol |
|
|
|
}); |
|
|
|
if (_signal != null) |
|
|
|
{ |
|
|
|
_signal.SetResult(0); |
|
|
|
var signal = _signal; |
|
|
|
_signal = null; |
|
|
|
signal.SetResult(0); |
|
|
|
} |
|
|
|
} |
|
|
|
return tcs.Task; |
|
|
|
@ -98,4 +99,4 @@ namespace Avalonia.Remote.Protocol |
|
|
|
remove => _onException.Remove(value); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|