summaryrefslogtreecommitdiff
path: root/plugins/alsa
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2011-06-23 20:18:32 +0200
committerGravatar waker <wakeroid@gmail.com>2011-06-23 20:18:32 +0200
commit97c4bf5ba413a120e6277c73e82b1d150c459592 (patch)
tree124d48b9cf325fafe5e0e0067af7dc96559eb509 /plugins/alsa
parentc56f3617aa4112447139ac8c0a059cadbf78c3c6 (diff)
fixed freeze in alsa_free on x86_64 (bug #3325101)
Diffstat (limited to 'plugins/alsa')
-rw-r--r--plugins/alsa/alsa.c5
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);
+ }
}
}