aboutsummaryrefslogtreecommitdiff
path: root/qemu-thread-posix.c
diff options
context:
space:
mode:
authorBrad Smith <brad@comstyle.com>2012-12-28 01:00:26 -0500
committerBlue Swirl <blauwirbel@gmail.com>2012-12-29 12:27:36 +0000
commita795ef8dcb8cbadffc996c41ff38927a97645234 (patch)
tree8b0e9d3368a50e3762d208965f0cf78de01fc33f /qemu-thread-posix.c
parent753d99d38b5877440dde2705e30ca60e2ec62965 (diff)
downloadqemu-a795ef8dcb8cbadffc996c41ff38927a97645234.zip
qemu-a795ef8dcb8cbadffc996c41ff38927a97645234.tar.gz
qemu-a795ef8dcb8cbadffc996c41ff38927a97645234.tar.bz2
Fix semaphores fallback code
As reported in bug 1087114 the semaphores fallback code is broken which results in QEMU crashing and making QEMU unusable. This patch is from Paolo. This needs to be back ported to the 1.3 stable tree as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Brad Smith <brad@comstyle.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'qemu-thread-posix.c')
-rw-r--r--qemu-thread-posix.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c
index 6374df3..4489abf 100644
--- a/qemu-thread-posix.c
+++ b/qemu-thread-posix.c
@@ -213,6 +213,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)
while (sem->count < 0) {
rc = pthread_cond_timedwait(&sem->cond, &sem->lock, &ts);
if (rc == ETIMEDOUT) {
+ ++sem->count;
break;
}
if (rc != 0) {