From c9db92fcc1c512b9e0e9928c0f2ac7a74b9cf384 Mon Sep 17 00:00:00 2001 From: blueswir1 Date: Sat, 17 Jan 2009 06:49:15 +0000 Subject: [PATCH] Use kill instead of sigqueue: re-enables AIO on OpenBSD git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6360 c046a42c-6fe2-441c-8c8c-71466251a162 --- block-raw-posix.c | 3 +-- configure | 4 +--- posix-aio-compat.c | 4 +--- posix-aio-compat.h | 2 +- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/block-raw-posix.c b/block-raw-posix.c index f00ef42..9e3d66f 100644 --- a/block-raw-posix.c +++ b/block-raw-posix.c @@ -579,8 +579,7 @@ static RawAIOCB *raw_aio_setup(BlockDriverState *bs, if (!acb) return NULL; acb->aiocb.aio_fildes = s->fd; - acb->aiocb.aio_sigevent.sigev_signo = SIGUSR2; - acb->aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL; + acb->aiocb.sigev_signo = SIGUSR2; acb->aiocb.aio_buf = buf; if (nb_sectors < 0) acb->aiocb.aio_nbytes = -nb_sectors; diff --git a/configure b/configure index 57e2d57..6a1432a 100755 --- a/configure +++ b/configure @@ -1005,9 +1005,7 @@ if test "$aio" = "yes" ; then aio=no cat > $TMPC << EOF #include -#include -int main(void) { struct sigevent s; pthread_mutex_t lock; - return sigqueue(0, 0, s.sigev_value); } +int main(void) { pthread_mutex_t lock; return 0; } EOF if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then aio=yes diff --git a/posix-aio-compat.c b/posix-aio-compat.c index c919e3b..ef76f74 100644 --- a/posix-aio-compat.c +++ b/posix-aio-compat.c @@ -94,9 +94,7 @@ static void *aio_thread(void *unused) idle_threads++; pthread_mutex_unlock(&lock); - sigqueue(getpid(), - aiocb->aio_sigevent.sigev_signo, - aiocb->aio_sigevent.sigev_value); + kill(getpid(), aiocb->sigev_signo); } idle_threads--; diff --git a/posix-aio-compat.h b/posix-aio-compat.h index 5dddd71..5eb1704 100644 --- a/posix-aio-compat.h +++ b/posix-aio-compat.h @@ -29,7 +29,7 @@ struct qemu_paiocb int aio_fildes; void *aio_buf; size_t aio_nbytes; - struct sigevent aio_sigevent; + int sigev_signo; off_t aio_offset; /* private */ -- 1.7.9.5