mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-06 13:29:56 -05:00
iochannel: Avoid unnecessary wakeup after successful write
To save some CPU (in low latency scenarios), don't re-enable the "writable" event after it has succeeded. It is very likely the next write will succeed right away too. This means that we always need to handle EAGAIN/EWOULDBLOCK as a successful write of 0 bytes, so I also verified that all callers to pa_iochannel_write handled this correctly. Signed-off-by: David Henningsson <david.henningsson@canonical.com>
This commit is contained in:
parent
e2d1421f61
commit
9c4dcffca5
6 changed files with 17 additions and 21 deletions
|
|
@ -345,7 +345,7 @@ static int do_write(struct userdata *u) {
|
|||
if (u->write_data) {
|
||||
pa_assert(u->write_index < u->write_length);
|
||||
|
||||
if ((r = pa_iochannel_write(u->io, (uint8_t*) u->write_data + u->write_index, u->write_length - u->write_index)) <= 0) {
|
||||
if ((r = pa_iochannel_write(u->io, (uint8_t*) u->write_data + u->write_index, u->write_length - u->write_index)) < 0) {
|
||||
pa_log("write() failed: %s", pa_cstrerror(errno));
|
||||
return -1;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue