# HG changeset patch # User Sam Lantinga # Date 1255575131 0 # Node ID 4eb6b4be1dbc9cf0dd11a6dcd0d7d60c79798e72 # Parent 77b20871fd44270bae2bb42e3aa38c3d9ef701fb Fixed bug #728 I am using a headset on my monitor as primary sound output device. From time to time it happens that I switch off my monitor when I leave my computer and switch it on when I come back. When doing so while wesnoth is running I get no sound back when I switch on my monitor. There is probably good reason for that. Therefore I wanted to exit and restart wesnoth. Unfortunately, wesnoth always hangs in this situation. It looks like wesnoth can not be exited when the primary sound device vanished. I created a backtrace of this situation (please see attachment). diff -r 77b20871fd44 -r 4eb6b4be1dbc src/audio/alsa/SDL_alsa_audio.c --- a/src/audio/alsa/SDL_alsa_audio.c Wed Oct 14 07:34:35 2009 +0000 +++ b/src/audio/alsa/SDL_alsa_audio.c Thu Oct 15 02:52:11 2009 +0000 @@ -323,7 +323,7 @@ frames_left = ((snd_pcm_uframes_t) this->spec.samples); - while ( frames_left > 0 ) { + while ( frames_left > 0 && this->enabled ) { status = SDL_NAME(snd_pcm_writei)(pcm_handle, sample_buf, frames_left); if ( status < 0 ) { if ( status == -EAGAIN ) {