[pulseaudio-commits] [SCM] PulseAudio Sound Server branch, stable-queue, updated. v0.9.21-41-g5e2af2d
Lennart Poettering
gitmailer-noreply at 0pointer.de
Mon Feb 15 18:40:54 PST 2010
This is an automated email from the git hooks/post-receive script. It was
generated because of a push to the "PulseAudio Sound Server" repository.
The stable-queue branch has been updated
from 96592c21150e789156153dcebd14e201cd41cbeb (commit)
- Log -----------------------------------------------------------------
5e2af2d fdsem: be more verbose when reading from eventfd fails.
-----------------------------------------------------------------------
Summary of changes:
src/pulsecore/fdsem.c | 41 +++++++++++++++++++++++++++++++++++------
1 files changed, 35 insertions(+), 6 deletions(-)
-----------------------------------------------------------------------
commit 5e2af2d3f3dea473d46b33a5e90a993ac5da3f35
Author: Lennart Poettering <lennart at poettering.net>
Date: Tue Feb 16 03:36:44 2010 +0100
fdsem: be more verbose when reading from eventfd fails.
Apperently reading from an eventfd can fail, which results in an assert
to be hit. I am not sure about the reason for the failure, but in
attempt to track down the issue the next time is hit this prints a more
useful log message.
https://bugzilla.redhat.com/attachment.cgi?id=386380
diff --git a/src/pulsecore/fdsem.c b/src/pulsecore/fdsem.c
index 380f34f..00836f9 100644
--- a/src/pulsecore/fdsem.c
+++ b/src/pulsecore/fdsem.c
@@ -35,6 +35,7 @@
#include <pulsecore/thread.h>
#include <pulsecore/macro.h>
#include <pulsecore/core-util.h>
+#include <pulsecore/core-error.h>
#include <pulse/xmalloc.h>
#ifndef HAVE_PIPE
@@ -159,7 +160,12 @@ static void flush(pa_fdsem *f) {
uint64_t u;
if ((r = read(f->efd, &u, sizeof(u))) != sizeof(u)) {
- pa_assert(r < 0 && errno == EINTR);
+
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from eventfd: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
r = (ssize_t) u;
@@ -167,7 +173,12 @@ static void flush(pa_fdsem *f) {
#endif
if ((r = read(f->fds[0], &x, sizeof(x))) <= 0) {
- pa_assert(r < 0 && errno == EINTR);
+
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
@@ -192,14 +203,22 @@ void pa_fdsem_post(pa_fdsem *f) {
uint64_t u = 1;
if ((r = write(f->efd, &u, sizeof(u))) != sizeof(u)) {
- pa_assert(r < 0 && errno == EINTR);
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
} else
#endif
if ((r = write(f->fds[1], &x, 1)) != 1) {
- pa_assert(r < 0 && errno == EINTR);
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
@@ -228,7 +247,12 @@ void pa_fdsem_wait(pa_fdsem *f) {
uint64_t u;
if ((r = read(f->efd, &u, sizeof(u))) != sizeof(u)) {
- pa_assert(r < 0 && errno == EINTR);
+
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
@@ -237,7 +261,12 @@ void pa_fdsem_wait(pa_fdsem *f) {
#endif
if ((r = read(f->fds[0], &x, sizeof(x))) <= 0) {
- pa_assert(r < 0 && errno == EINTR);
+
+ if (r >= 0 || errno != EINTR) {
+ pa_log_error("Invalid read from pipe: %s", r < 0 ? pa_cstrerror(errno) : "EOF");
+ pa_assert_not_reached();
+ }
+
continue;
}
--
hooks/post-receive
PulseAudio Sound Server
More information about the pulseaudio-commits
mailing list