Skip to content

Conversation

zarvox
Copy link
Member

@zarvox zarvox commented Oct 11, 2017

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.

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.
@piedar piedar added this to the v0.5.7 milestone Oct 11, 2017
@piedar piedar merged commit 924298a into OpenKinect:master Oct 11, 2017
@zarvox zarvox deleted the exit-micview-cleanly branch August 13, 2019 19:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants