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.
---
src/modules/bluetooth/module-bluez5-device.c | 16 +---
src/modules/module-esound-sink.c | 4 +-
src/modules/module-pipe-sink.c | 17 -
src/modules/module-pipe-source.c | 4 +-
src/modules/module-solaris.c | 4 +-
src/modules/oss/module-oss.c | 10 +
src/pulsecore/fdsem.c| 40 ++--
src/pulsecore/iochannel.c| 2 +-
src/pulsecore/protocol-esound.c | 8 ++--
src/pulsecore/protocol-simple.c | 2 +-
10 files changed, 32 insertions(+), 75 deletions(-)
diff --git a/src/modules/bluetooth/module-bluez5-device.c
b/src/modules/bluetooth/module-bluez5-device.c
index 56c96054d..f850a3a41 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) {
@@ -445,11 +441,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;
@@ -543,11 +535,7 @@ static int a2dp_process_push(struct userdata *u) {
if (l <= 0) {
-if (l < 0 && errno == EINTR)
-/* Retry right away if we got interrupted */
-continue;
-
-else if (l < 0 && errno == EAGAIN)
+if (l < 0 && errno == EAGAIN)
/* Hmm, apparently the socket was not readable, give up for
now. */
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 1