-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add extra logging regarding interpreter discovery #21639
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -100,7 +100,7 @@ export function plainExec( | |
const deferred = createDeferred<ExecutionResult<string>>(); | ||
const disposable: IDisposable = { | ||
dispose: () => { | ||
if (!proc.killed && !deferred.completed) { | ||
if (!proc.killed) { | ||
proc.kill(); | ||
} | ||
}, | ||
|
@@ -156,10 +156,12 @@ export function plainExec( | |
deferred.resolve({ stdout, stderr }); | ||
} | ||
internalDisposables.forEach((d) => d.dispose()); | ||
disposable.dispose(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @karthiknadig Hope forcefully killing processes after execution finishes is okay There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is technically not when execution is completed, but rather when dispose is called. But yes, it should be fine. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is executed on |
||
}); | ||
proc.once('error', (ex) => { | ||
deferred.reject(ex); | ||
internalDisposables.forEach((d) => d.dispose()); | ||
disposable.dispose(); | ||
}); | ||
|
||
return deferred.promise; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this also auto reject the promise to prevent dangling async operation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which promise? Asking as these are all sync operations.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the one that used in
deferred
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, right.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually that's not necessary, as
proc.once('close'
is called on process killing which resolves or reject deferred based on certain conditions.