@@ -50,12 +50,15 @@ export class VscodeHttpProvider extends HttpProvider {
5050
5151 logger . debug ( "setting up vs code..." )
5252 return new Promise < WorkbenchOptions > ( ( resolve , reject ) => {
53- vscode . once ( "message" , ( message : VscodeMessage ) => {
54- logger . debug ( "got message from vs code" , field ( "message" , message ) )
55- return message . type === "options" && message . id === id
56- ? resolve ( message . options )
57- : reject ( new Error ( "Unexpected response during initialization" ) )
58- } )
53+ const onMessage = ( message : VscodeMessage ) => {
54+ // There can be parallel initializations so wait for the right ID.
55+ if ( message . type === "options" && message . id === id ) {
56+ logger . trace ( "got message from vs code" , field ( "message" , message ) )
57+ vscode . off ( "message" , onMessage )
58+ resolve ( message . options )
59+ }
60+ }
61+ vscode . on ( "message" , onMessage )
5962 vscode . once ( "error" , reject )
6063 vscode . once ( "exit" , ( code ) => reject ( new Error ( `VS Code exited unexpectedly with code ${ code } ` ) ) )
6164 this . send ( { type : "init" , id, options } , vscode )
@@ -77,7 +80,7 @@ export class VscodeHttpProvider extends HttpProvider {
7780
7881 this . _vscode = new Promise ( ( resolve , reject ) => {
7982 vscode . once ( "message" , ( message : VscodeMessage ) => {
80- logger . debug ( "got message from vs code" , field ( "message" , message ) )
83+ logger . trace ( "got message from vs code" , field ( "message" , message ) )
8184 return message . type === "ready"
8285 ? resolve ( vscode )
8386 : reject ( new Error ( "Unexpected response waiting for ready response" ) )
0 commit comments