Don't throw Objective C exception when quitting MacVim #1371
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.
Currently when quitting MacVim, MMVimController will throw an exception in
sendMessage:
. This is because MMAppController's handler for quitting simply closes the connection, terminates the Vim processes and quit; it doesn't individually shut down each Vim controller cleanly. This is actually ok because we are quitting the app anyway, and it's not terrible to just let the OS clean up (applicationWillTerminate
also has a 5 second executation timer set by macOS), but we do need to make sure Vim controllers won't be trying to handle the now invalid connections.Currently the exceptions will be caught by an exception handler, but it's still not great, and could be confused with a bug, especially if logging is enabled.
Add a way to set
isInitialized
to NO when shutting down, so that the controllers will be blocked from trying to send connections.