Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This creates the
DenoWorker.closeSocket()
function, that closes the WebSocket, which can keep the process running, even when it's done executing.Motivation
At val.town, users can sometimes write scripts that have promises that aren't awaited. We want to let those promises finish, ideally letting Deno exit whenever it thinks it's done.
Problem
Unresolved promises can cause the DenoWorker to never exit when the websocket is open. Example script:
When running the script above with
deno run unresolved.js
, it will exit naturally. When usingDenoWorker
, it will keep the process alive.Solution
Closing the socket lets Deno properly exit like expected.