Change:
Testing When I just launch and then quit VSCode, I see the black dot on the dock for quite some time. I have launched from CLI: !
Yeah, running with :
This is a side effect of how we gracefully shutdown the utility process, previously the extension host was responsible for shutting itself down and we block the main process exit based on it Utility process lifetimes are controlled by the main process, (i-e) on graceful shutdown of the application the main process will first try to quit the main message loop and the applications have a chance to block this exit based on , event listeners and we use that today to provide chance to shutdown our services and once message loop is good to exit, the main process will cleanup C++ handles to the JS objects and only during this phase I also shutdown the running utility processes gracefully which will emit the event, after that the node environments, child process and threads in the main process will get shutdown one after other eventually exiting the main process itself. So what we are currently seeing is a chicken and egg problem, where the main message loop exit is blocked for 6s by the extension host exit, but the extension host exit is blocked on event from the main message loop. Solution: The runtime can only cleanup the utility process once the main message loop is ready to exit, if the exit is blocked on the application end it is not possible to know when to gracefully shutdown the process from the runtime side. Thoughts ? Alternatively, from the runtime side I can move the cleanup of utility process earlier just before the , event listeners get emitted so that the application receives an event.
The extension host processes should exit by themselves when the MessageChannel is closed. My intuition here is that the event might not be firing on the instance, but I need to debug it to confirm.
Ah yeah, I currently don't emit the event when gets disconnected however the process does exit. Will address it.

Discussion:
disturl "https://electronjs.org/headers" <del> target "18.3.2" </del> <ins> target "18.3.3" </ins> runtime "electron" build_from_source "true"

"git": { "name": "electron", "repositoryUrl": "https://github.com/electron/electron", <del> "commitHash": "6839dd92b84057e79ddce06f8291cc56a0a51ff6" </del> <ins> "commitHash": "15f3c45fe9292fb80c5b5c4d26a218e825287d07" </ins> } }, "isOnlyProductionDependency": true, "license": "MIT", <del> "version": "18.3.2" </del> <ins> "version": "18.3.3" </ins> }, { "component": {

"cssnano": "^4.1.11", "debounce": "^1.0.0", "deemon": "^1.4.0", <del> "electron": "18.3.2", </del> <ins> "electron": "18.3.3", </ins> "eslint": "8.7.0", "eslint-plugin-header": "3.1.1", "eslint-plugin-jsdoc": "^39.3.2",

resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.45.tgz#cf1144091d6683cbd45a231954a745f02fb24598" integrity sha512-czF9eYVuOmlY/vxyMQz2rGlNSjZpxNQYBe1gmQv7al171qOIhgyO9k7D5AKlgeTCSPKk+LHhj5ZyIdmEub9oNg== <del> electron@18.3.2: version "18.3.2" resolved "https://registry.yarnpkg.com/electron/-/electron-18.3.2.tgz#015a8f4c92c62855d7f33206f2166d3e33b053b7" integrity sha512-Q1ciZ1M90L71WvyLbkD8Iwaq4YCwo8NUpBiLQUsd6M4E7i5vrzsA4g5Ylfzyela8DgRCNVknDVDfj6s+7YVWpA== </del> <ins> electron@18.3.3: version "18.3.3" resolved "https://registry.yarnpkg.com/electron/-/electron-18.3.3.tgz#1c48273c1ad1522b8c18f19575e862c7ccd9f409" integrity sha512-LYxf3uCDc/r0klu7LL0eZLxkseoGIY/vrCfS0Qj4YTU3M7LLjOaIqrajI7icKwaI2dgxiuJJH3n4eqALFpJAFg== </ins> dependencies: "@electron/get" "^1.13.0" "@types/node" "^16.11.26"