Fix semaphores fallback code
authorBrad Smith <brad@comstyle.com>
Fri, 28 Dec 2012 06:00:26 +0000 (01:00 -0500)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 29 Dec 2012 12:27:36 +0000 (12:27 +0000)
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>
qemu-thread-posix.c

index 6374df3328a0b690d7e0b0d03e0c6c27f415b8d2..4489abf1d850df954cce2e987e5c59f70435f69b 100644 (file)
@@ -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) {