Skip to content

Commit 2d606df

Browse files
committed
fix(DevSupport): Prevent WebSocket JS Executor from hanging on reload (microsoft#423)
The WebSocket JS executor was being disconnected before before it was disposed because a new executor would replace it before the dispose operation. Ensuring the new connection only occurs after the previous connection has been disposed. Fixes microsoft#374
1 parent f673f03 commit 2d606df

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

ReactWindows/ReactNative/DevSupport/DevSupportManager.cs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -382,9 +382,13 @@ private async Task ReloadJavaScriptInProxyMode(Action dismissProgress, Cancellat
382382
try
383383
{
384384
await _devServerHelper.LaunchDevToolsAsync(token);
385-
var executor = new WebSocketJavaScriptExecutor();
386-
await executor.ConnectAsync(_devServerHelper.WebsocketProxyUrl, token);
387-
var factory = new Func<IJavaScriptExecutor>(() => executor);
385+
var factory = new Func<IJavaScriptExecutor>(() =>
386+
{
387+
var executor = new WebSocketJavaScriptExecutor();
388+
executor.ConnectAsync(_devServerHelper.WebsocketProxyUrl, token).Wait();
389+
return executor;
390+
});
391+
388392
_reactInstanceCommandsHandler.OnReloadWithJavaScriptDebugger(factory);
389393
dismissProgress();
390394
}

0 commit comments

Comments
 (0)