Disable semaphores fallback code for OpenBSD
Disable the semaphores fallback code for OpenBSD as modern OpenBSD
releases now have sem_timedwait().
Signed-off-by: Brad Smith <brad@comstyle.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
(cherry picked from commit 927fa909d5
)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
0a7ad69a0f
commit
d67d95f24e
|
@ -122,7 +122,7 @@ void qemu_sem_init(QemuSemaphore *sem, int init)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
rc = pthread_mutex_init(&sem->lock, NULL);
|
rc = pthread_mutex_init(&sem->lock, NULL);
|
||||||
if (rc != 0) {
|
if (rc != 0) {
|
||||||
error_exit(rc, __func__);
|
error_exit(rc, __func__);
|
||||||
|
@ -147,7 +147,7 @@ void qemu_sem_destroy(QemuSemaphore *sem)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
rc = pthread_cond_destroy(&sem->cond);
|
rc = pthread_cond_destroy(&sem->cond);
|
||||||
if (rc < 0) {
|
if (rc < 0) {
|
||||||
error_exit(rc, __func__);
|
error_exit(rc, __func__);
|
||||||
|
@ -168,7 +168,7 @@ void qemu_sem_post(QemuSemaphore *sem)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
|
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
pthread_mutex_lock(&sem->lock);
|
pthread_mutex_lock(&sem->lock);
|
||||||
if (sem->count == INT_MAX) {
|
if (sem->count == INT_MAX) {
|
||||||
rc = EINVAL;
|
rc = EINVAL;
|
||||||
|
@ -206,7 +206,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)
|
||||||
int rc;
|
int rc;
|
||||||
struct timespec ts;
|
struct timespec ts;
|
||||||
|
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
compute_abs_deadline(&ts, ms);
|
compute_abs_deadline(&ts, ms);
|
||||||
pthread_mutex_lock(&sem->lock);
|
pthread_mutex_lock(&sem->lock);
|
||||||
--sem->count;
|
--sem->count;
|
||||||
|
@ -249,7 +249,7 @@ int qemu_sem_timedwait(QemuSemaphore *sem, int ms)
|
||||||
|
|
||||||
void qemu_sem_wait(QemuSemaphore *sem)
|
void qemu_sem_wait(QemuSemaphore *sem)
|
||||||
{
|
{
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
pthread_mutex_lock(&sem->lock);
|
pthread_mutex_lock(&sem->lock);
|
||||||
--sem->count;
|
--sem->count;
|
||||||
while (sem->count < 0) {
|
while (sem->count < 0) {
|
||||||
|
|
|
@ -12,7 +12,7 @@ struct QemuCond {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct QemuSemaphore {
|
struct QemuSemaphore {
|
||||||
#if defined(__OpenBSD__) || defined(__APPLE__) || defined(__NetBSD__)
|
#if defined(__APPLE__) || defined(__NetBSD__)
|
||||||
pthread_mutex_t lock;
|
pthread_mutex_t lock;
|
||||||
pthread_cond_t cond;
|
pthread_cond_t cond;
|
||||||
int count;
|
int count;
|
||||||
|
|
Loading…
Reference in New Issue