Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add self-restart capability to client
For some option changes a client restart is required to fully apply the changes. This patch enabled Mumble to restart itself. This is accomplished by adding a special MUMBLE_EXIT_CODE_RESTART exit code that is cought right before the application terminates. Mumble then uses available session information to launch another instance of itself right before it exits. As this happens after the vast majority of cleanup multiple client restrictions and other resource contention issues do not come into play. Launching another client deviates from the usually recommended way of not exiting the process but simply doing a re-initialization of the application after the cleanup. With Mumble this is tricky as we have some objects for which we do not control the lifetime after we initialized them once and others might be managed sloppily as the design never expected to have to re-initialize. We should strive to clean up these weaknesses in resource management but for now the approach taken here works around them.
- Loading branch information
Showing
4 changed files
with
58 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters