]> git.proxmox.com Git - qemu.git/commitdiff
Use kill instead of sigqueue: re-enables AIO on OpenBSD
authorblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 17 Jan 2009 06:49:15 +0000 (06:49 +0000)
committerblueswir1 <blueswir1@c046a42c-6fe2-441c-8c8c-71466251a162>
Sat, 17 Jan 2009 06:49:15 +0000 (06:49 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6360 c046a42c-6fe2-441c-8c8c-71466251a162

block-raw-posix.c
configure
posix-aio-compat.c
posix-aio-compat.h

index f00ef423af79de49245e707c8b3270dede44163f..9e3d66f4ca0056a8ce0428d21f1e122d901f978c 100644 (file)
@@ -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;
index 57e2d57e00b2e037fd09bb977da886301cf8dbe5..6a1432a1714716d7386327cc63412ebcaa51831c 100755 (executable)
--- a/configure
+++ b/configure
@@ -1005,9 +1005,7 @@ if test "$aio" = "yes" ; then
   aio=no
   cat > $TMPC << EOF
 #include <pthread.h>
-#include <signal.h>
-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
index c919e3b22d4c96030a1656a4d58a6746318d0c24..ef76f74acefaa000fd16f3a73feb9279d5eceffa 100644 (file)
@@ -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--;
index 5dddd711a953805ce9e52afbb21f640cf3aa58d7..5eb17043e6f01c51cbef8f49ed96e10286a05fdb 100644 (file)
@@ -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 */