Should fix high CPU bug in Pulse. (Thanks to fable2012).

This commit is contained in:
Themaister 2012-04-18 20:30:32 +02:00
parent 00fd46c0f6
commit 8fed2d1efb

View File

@ -182,18 +182,15 @@ static ssize_t pulse_write(void *data, const void *buf, size_t size)
size_t length = pa_stream_writable_size(pa->stream);
pa_threaded_mainloop_unlock(pa->mainloop);
while (length < size)
while (length < size && !pa->nonblock)
{
pa_threaded_mainloop_wait(pa->mainloop);
pa_threaded_mainloop_lock(pa->mainloop);
pa_threaded_mainloop_wait(pa->mainloop);
length = pa_stream_writable_size(pa->stream);
pa_threaded_mainloop_unlock(pa->mainloop);
if (pa->nonblock)
break;
}
size_t write_size = length < size ? length : size;
size_t write_size = min(length, size);
pa_threaded_mainloop_lock(pa->mainloop);
pa_stream_write(pa->stream, buf, write_size, NULL, 0LL, PA_SEEK_RELATIVE);