Please sign in to comment.
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 with 58 additions and 2 deletions.