• P
    async: add aio_bh_schedule_oneshot · 5b8bb359
    Paolo Bonzini 提交于
    qemu_bh_delete is already clearing bh->scheduled at the same time
    as it's setting bh->deleted.  Since it's not using any memory
    barriers, there is no synchronization going on for bh->deleted,
    and this makes the bh->deleted checks superfluous in aio_compute_timeout,
    aio_bh_poll and aio_ctx_check.
    
    Just remove them, and put the (bh->scheduled && bh->deleted) combo
    to work in a new function aio_bh_schedule_oneshot.  The new function
    removes the need to save the QEMUBH pointer between the creation
    and the execution of the bottom half.
    Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    5b8bb359
aio.h 14.6 KB