diff options
author | Frédéric Danis <frederic.danis@collabora.com> | 2019-05-28 16:49:19 +0200 |
---|---|---|
committer | Georg Chini <georg@chini.tk> | 2020-12-09 10:28:15 +0000 |
commit | 05f3e8bf9ae7adeb4db8b77c0a92dbb5350d189a (patch) | |
tree | eb143a2be94fd9e842d74fd06a611058a44310de | |
parent | 8342c1233977504f5e3d2d61b1bdb4c7884b1d8c (diff) | |
download | pulseaudio-05f3e8bf9ae7adeb4db8b77c0a92dbb5350d189a.tar.gz |
core, modules: Remove useless EINTR tests
Since commit ad447d14682 (in 2009) pa_read and pa_write take care of
handling EINTR error.
So, pa_read, pa_write, pa_iochannel_read and pa_iochannel_write can not
exit with errno set to EINTR, and testing it is useless.
-rw-r--r-- | src/modules/bluetooth/module-bluez5-device.c | 10 | ||||
-rw-r--r-- | src/modules/module-esound-sink.c | 4 | ||||
-rw-r--r-- | src/modules/module-pipe-sink.c | 17 | ||||
-rw-r--r-- | src/modules/module-pipe-source.c | 4 | ||||
-rw-r--r-- | src/modules/module-solaris.c | 4 | ||||
-rw-r--r-- | src/modules/oss/module-oss.c | 10 | ||||
-rw-r--r-- | src/pulsecore/fdsem.c | 52 | ||||
-rw-r--r-- | src/pulsecore/iochannel.c | 2 | ||||
-rw-r--r-- | src/pulsecore/protocol-esound.c | 8 | ||||
-rw-r--r-- | src/pulsecore/protocol-simple.c | 2 |
10 files changed, 31 insertions, 82 deletions
diff --git a/src/modules/bluetooth/module-bluez5-device.c b/src/modules/bluetooth/module-bluez5-device.c index 402053a59..87a8809ff 100644 --- a/src/modules/bluetooth/module-bluez5-device.c +++ b/src/modules/bluetooth/module-bluez5-device.c @@ -279,10 +279,6 @@ static int sco_process_render(struct userdata *u) { saved_errno = errno; - if (saved_errno == EINTR) - /* Retry right away if we got interrupted */ - continue; - pa_memblock_unref(memchunk.memblock); if (saved_errno == EAGAIN) { @@ -462,11 +458,7 @@ static int a2dp_write_buffer(struct userdata *u, size_t nbytes) { if (l < 0) { - if (errno == EINTR) - /* Retry right away if we got interrupted */ - continue; - - else if (errno == EAGAIN) { + if (errno == EAGAIN) { /* Hmm, apparently the socket was not writable, give up for now */ pa_log_debug("Got EAGAIN on write() after POLLOUT, probably there is a temporary connection loss."); break; diff --git a/src/modules/module-esound-sink.c b/src/modules/module-esound-sink.c index 5ff04516a..f46dc3889 100644 --- a/src/modules/module-esound-sink.c +++ b/src/modules/module-esound-sink.c @@ -249,9 +249,7 @@ static void thread_func(void *userdata) { if (l < 0) { - if (errno == EINTR) - continue; - else if (errno == EAGAIN) { + if (errno == EAGAIN) { /* OK, we filled all socket buffers up * now. */ diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c index 213924fdc..43595420f 100644 --- a/src/modules/module-pipe-sink.c +++ b/src/modules/module-pipe-sink.c @@ -199,14 +199,13 @@ static ssize_t pipe_sink_write(struct userdata *u, pa_memchunk *pchunk) { if (l < 0) { if (errno == EAGAIN) break; - else if (errno != EINTR) { - if (!u->fifo_error) { - pa_log("Failed to write data to FIFO: %s", pa_cstrerror(errno)); - u->fifo_error = true; - } - count = -1 - count; - break; + + if (!u->fifo_error) { + pa_log("Failed to write data to FIFO: %s", pa_cstrerror(errno)); + u->fifo_error = true; } + count = -1 - count; + break; } else { if (u->fifo_error) { pa_log_debug("Recovered from FIFO error"); @@ -288,9 +287,7 @@ static int process_render(struct userdata *u) { if (l < 0) { - if (errno == EINTR) - continue; - else if (errno == EAGAIN) + if (errno == EAGAIN) return 0; else { pa_log("Failed to write data to FIFO: %s", pa_cstrerror(errno)); diff --git a/src/modules/module-pipe-source.c b/src/modules/module-pipe-source.c index 74ec0551a..32b35c163 100644 --- a/src/modules/module-pipe-source.c +++ b/src/modules/module-pipe-source.c @@ -155,9 +155,7 @@ static void thread_func(void *userdata) { if (l < 0) { - if (errno == EINTR) - continue; - else if (errno != EAGAIN) { + if (errno != EAGAIN) { pa_log("Failed to read data from FIFO: %s", pa_cstrerror(errno)); goto fail; } diff --git a/src/modules/module-solaris.c b/src/modules/module-solaris.c index 038aca114..ec9eb875f 100644 --- a/src/modules/module-solaris.c +++ b/src/modules/module-solaris.c @@ -714,9 +714,7 @@ static void thread_func(void *userdata) { pa_memblock_release(u->memchunk.memblock); if (w <= 0) { - if (errno == EINTR) { - continue; - } else if (errno == EAGAIN) { + if (errno == EAGAIN) { /* We may have realtime priority so yield the CPU to ensure that fd can become writable again. */ pa_log_debug("EAGAIN with %llu bytes buffered.", buffered_bytes); break; diff --git a/src/modules/oss/module-oss.c b/src/modules/oss/module-oss.c index ed124cab4..6eb025489 100644 --- a/src/modules/oss/module-oss.c +++ b/src/modules/oss/module-oss.c @@ -980,10 +980,7 @@ static void thread_func(void *userdata) { if (t < 0) { - if (errno == EINTR) - continue; - - else if (errno == EAGAIN) { + if (errno == EAGAIN) { pa_log_debug("EAGAIN"); revents &= ~POLLOUT; @@ -1087,10 +1084,7 @@ static void thread_func(void *userdata) { if (t < 0) { pa_memblock_unref(memchunk.memblock); - if (errno == EINTR) - continue; - - else if (errno == EAGAIN) { + if (errno == EAGAIN) { pa_log_debug("EAGAIN"); revents &= ~POLLIN; diff --git a/src/pulsecore/fdsem.c b/src/pulsecore/fdsem.c index a7fbf95d2..5fc22975a 100644 --- a/src/pulsecore/fdsem.c +++ b/src/pulsecore/fdsem.c @@ -151,26 +151,16 @@ static void flush(pa_fdsem *f) { uint64_t u; if ((r = pa_read(f->efd, &u, sizeof(u), NULL)) != sizeof(u)) { - - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } r = (ssize_t) u; } else #endif if ((r = pa_read(f->fds[0], &x, sizeof(x), NULL)) <= 0) { - - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } } while (pa_atomic_sub(&f->data->in_pipe, (int) r) > (int) r); @@ -194,23 +184,15 @@ void pa_fdsem_post(pa_fdsem *f) { uint64_t u = 1; if ((r = pa_write(f->efd, &u, sizeof(u), &f->write_type)) != sizeof(u)) { - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid write to eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid write to eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } } else #endif if ((r = pa_write(f->fds[1], &x, 1, &f->write_type)) != 1) { - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid write to pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid write to pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } break; @@ -238,13 +220,8 @@ void pa_fdsem_wait(pa_fdsem *f) { uint64_t u; if ((r = pa_read(f->efd, &u, sizeof(u), NULL)) != sizeof(u)) { - - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } r = (ssize_t) u; @@ -252,13 +229,8 @@ void pa_fdsem_wait(pa_fdsem *f) { #endif if ((r = pa_read(f->fds[0], &x, sizeof(x), NULL)) <= 0) { - - if (r >= 0 || errno != EINTR) { - pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); - pa_assert_not_reached(); - } - - continue; + pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF"); + pa_assert_not_reached(); } pa_atomic_sub(&f->data->in_pipe, (int) r); diff --git a/src/pulsecore/iochannel.c b/src/pulsecore/iochannel.c index e25824b78..eb93176ec 100644 --- a/src/pulsecore/iochannel.c +++ b/src/pulsecore/iochannel.c @@ -227,7 +227,7 @@ ssize_t pa_iochannel_write(pa_iochannel*io, const void*data, size_t l) { return r; /* Fast path - we almost always successfully write everything */ if (r < 0) { - if (errno == EINTR || errno == EAGAIN) + if (errno == EAGAIN) r = 0; else return r; diff --git a/src/pulsecore/protocol-esound.c b/src/pulsecore/protocol-esound.c index d54c7f845..cf0fe4fdf 100644 --- a/src/pulsecore/protocol-esound.c +++ b/src/pulsecore/protocol-esound.c @@ -1010,7 +1010,7 @@ static int do_read(connection *c) { ((uint8_t*) &c->request) + c->read_data_length, sizeof(c->request) - c->read_data_length)) <= 0) { - if (r < 0 && (errno == EINTR || errno == EAGAIN)) + if (r < 0 && errno == EAGAIN) return 0; pa_log_debug("read(): %s", r < 0 ? pa_cstrerror(errno) : "EOF"); @@ -1066,7 +1066,7 @@ static int do_read(connection *c) { (uint8_t*) c->read_data + c->read_data_length, handler->data_length - c->read_data_length)) <= 0) { - if (r < 0 && (errno == EINTR || errno == EAGAIN)) + if (r < 0 && errno == EAGAIN) return 0; pa_log_debug("read(): %s", r < 0 ? pa_cstrerror(errno) : "EOF"); @@ -1097,7 +1097,7 @@ static int do_read(connection *c) { pa_memblock_release(c->scache.memchunk.memblock); if (r <= 0) { - if (r < 0 && (errno == EINTR || errno == EAGAIN)) + if (r < 0 && errno == EAGAIN) return 0; pa_log_debug("read(): %s", r < 0 ? pa_cstrerror(errno) : "EOF"); @@ -1165,7 +1165,7 @@ static int do_read(connection *c) { if (r <= 0) { - if (r < 0 && (errno == EINTR || errno == EAGAIN)) + if (r < 0 && errno == EAGAIN) return 0; pa_log_debug("read(): %s", r < 0 ? pa_cstrerror(errno) : "EOF"); diff --git a/src/pulsecore/protocol-simple.c b/src/pulsecore/protocol-simple.c index 77d05398c..ed6a402e7 100644 --- a/src/pulsecore/protocol-simple.c +++ b/src/pulsecore/protocol-simple.c @@ -183,7 +183,7 @@ static int do_read(connection *c) { if (r <= 0) { - if (r < 0 && (errno == EINTR || errno == EAGAIN)) + if (r < 0 && errno == EAGAIN) return 0; pa_log_debug("read(): %s", r == 0 ? "EOF" : pa_cstrerror(errno)); |