diff options
author | waker <wakeroid@gmail.com> | 2011-06-23 20:18:32 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2011-06-23 20:18:32 +0200 |
commit | 97c4bf5ba413a120e6277c73e82b1d150c459592 (patch) | |
tree | 124d48b9cf325fafe5e0e0067af7dc96559eb509 /plugins/alsa | |
parent | c56f3617aa4112447139ac8c0a059cadbf78c3c6 (diff) |
fixed freeze in alsa_free on x86_64 (bug #3325101)
Diffstat (limited to 'plugins/alsa')
-rw-r--r-- | plugins/alsa/alsa.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/plugins/alsa/alsa.c b/plugins/alsa/alsa.c index 1cc0229a..fd71c89a 100644 --- a/plugins/alsa/alsa.c +++ b/plugins/alsa/alsa.c @@ -670,7 +670,10 @@ palsa_thread (void *context) { frames_to_deliver = snd_pcm_avail_update (audio); } UNLOCK; - usleep ((period_size-frames_to_deliver) * 1000000 / plugin.fmt.samplerate / plugin.fmt.channels); + int sleeptime = period_size-frames_to_deliver; + if (sleeptime > 0 && plugin.fmt.samplerate > 0 && plugin.fmt.channels > 0) { + usleep (sleeptime * 1000000 / plugin.fmt.samplerate / plugin.fmt.channels); + } } } |