Allow micview to exit cleanly on Linux #527
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.
This change fixes a bug where micview would hang when the user presses 'q' to
exit, and you'd have to kill -9 the process to make the window go away.
On Linux, with at least the radeon graphics driver, glutCreateWindow appears to
spawn several child threads for shaders, a disk cache, and something else:
si_shader:0
si_shader:1
si_shader:2
si_shader:3
disk_cache:0
radeon_cs:0
These threads appear to keep the process as a whole from exiting when
pthread_exit() is called. The solution is to call glutDestroyWindow(), which
will cause glutMainLoop() to return, which causes main() to return cleanly.