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
parent
commit
80901bc2f3
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      src/Avalonia.Remote.Protocol/TransportConnectionWrapper.cs

7
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);
}
}
}
}

Loading…
Cancel
Save