Commit 6eb5733a authored by bellard's avatar bellard
Browse files

fixed blocking io emulation


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2090 c046a42c-6fe2-441c-8c8c-71466251a162
parent 15e6690a
......@@ -308,6 +308,11 @@ void qemu_aio_wait(void)
{
sigset_t set;
int nb_sigs;
#ifndef QEMU_TOOL
if (qemu_bh_poll())
return;
#endif
sigemptyset(&set);
sigaddset(&set, aio_sig_num);
sigwait(&set, &nb_sigs);
......
......@@ -5200,19 +5200,23 @@ QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque)
return bh;
}
void qemu_bh_poll(void)
int qemu_bh_poll(void)
{
QEMUBH *bh, **pbh;
int ret;
ret = 0;
for(;;) {
pbh = &first_bh;
bh = *pbh;
if (!bh)
break;
ret = 1;
*pbh = bh->next;
bh->scheduled = 0;
bh->cb(bh->opaque);
}
return ret;
}
void qemu_bh_schedule(QEMUBH *bh)
......
......@@ -495,7 +495,7 @@ QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque);
void qemu_bh_schedule(QEMUBH *bh);
void qemu_bh_cancel(QEMUBH *bh);
void qemu_bh_delete(QEMUBH *bh);
void qemu_bh_poll(void);
int qemu_bh_poll(void);
/* block.c */
typedef struct BlockDriverState BlockDriverState;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment