Disable semaphores fallback code for OpenBSD
PATCH 1/1 Disable semaphores fallback code for OpenBSD
Disable the semaphores fallback code for OpenBSD as modern OpenBSD releases now have sem_timedwait().
include/qemu/thread-posix.h +1 -1
@@ -12,7 +12,7 @@ struct QemuCond { };struct QemuSemaphore { -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_t lock;pthread_cond_t cond;int count;
qemu-thread-posix.c +5 -5
@@ -122,7 +122,7 @@ void qemu_sem_init(QemuSemaphore *sem, int init) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__) rc =pthread_mutex_init (&sem->lock,NULL );if (rc !=0 ) {error_exit (rc, __func__);
@@ -147,7 +147,7 @@ void qemu_sem_destroy(QemuSemaphore *sem) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__) rc =pthread_cond_destroy (&sem->cond);if (rc <0 ) {error_exit (rc, __func__);
@@ -168,7 +168,7 @@ void qemu_sem_post(QemuSemaphore *sem) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_lock (&sem->lock);if (sem->count ==INT_MAX ) { rc =EINVAL ;
@@ -206,7 +206,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)int rc;struct timespec ts; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)compute_abs_deadline (&ts, ms);pthread_mutex_lock (&sem->lock); --sem->count;
@@ -248,7 +248,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)void qemu_sem_wait (QemuSemaphore *sem) { -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_lock (&sem->lock); --sem->count;while (sem->count <0 ) {
Signature · 3 lines
This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.
Blue Swirl
AppliedThanks, applied.
Quoted 74 lines · Brad Smith
Disable the semaphores fallback code for OpenBSD as modern OpenBSD releases now have
sem_timedwait().Signed-off-by Brad Smith <[email protected]>include/qemu/thread-posix.h +1
-1@@ -12,7 +12,7 @@ struct QemuCond { };struct QemuSemaphore { -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_t lock;pthread_cond_t cond;int count;qemu-thread-posix.c +5
-6@@ -122,7 +122,7 @@ void qemu_sem_init(QemuSemaphore *sem, int init) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__) rc =pthread_mutex_init (&sem->lock,NULL );if (rc !=0 ) {error_exit (rc, __func__);@@ -147,7 +147,7 @@ void qemu_sem_destroy(QemuSemaphore *sem) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__) rc =pthread_cond_destroy (&sem->cond);if (rc <0 ) {error_exit (rc, __func__);@@ -168,7 +168,7 @@ void qemu_sem_post(QemuSemaphore *sem) {int rc; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_lock (&sem->lock);if (sem->count ==INT_MAX ) { rc =EINVAL ;@@ -206,7 +206,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)int rc;struct timespec ts; -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)compute_abs_deadline (&ts, ms);pthread_mutex_lock (&sem->lock); --sem->count;@@ -248,7 +248,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)void qemu_sem_wait (QemuSemaphore *sem) { -#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__) +#if defined(__APPLE__) || defined(__NetBSD__)pthread_mutex_lock (&sem->lock); --sem->count;while (sem->count <0 ) { --This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Quoted 2 lines · Brad Smith
Disable the semaphores fallback code for OpenBSD as modern OpenBSD releases now have
sem_timedwait().
Maybe we should have a configure test for existence of sem_timedwait() rather than os-guessing ifdeffery...
-- PMM
Quoted 6 lines · Peter Maydell
Quoted 2 lines · Brad Smith
Disable the semaphores fallback code for OpenBSD as modern OpenBSD releases now have
sem_timedwait().Maybe we should have a configure test for existence of
sem_timedwait()rather than os-guessing ifdeffery...
+1
Quoted 3 lines
-- PMM