fix KeyError exception triggered on closing a window #2401
Merged
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.
wm.destroy
is called in two cases:EventListener.on_pre_close_window
, before the window is closedplugin_unloaded
hook when LSP package is unloadedThe changed line is triggered in the former case.
As the comment in
WindowManager.destroy()
says, we should (have to!) call it from the main thread when the plugin is unloaded. But afaics, we don't need to call it from the main thread when closing a window so change the code to not do that.Calling it from the main thread on window closing triggers a
KeyError
exception due toDocumentListener.on_close
being triggered first andDocumentListener.on_session_shutdown_async
later. The latter removes session view from the main thread first and the former tries to remove it again from scheduled execution on the async thread.Fixes #2399