On Mon, Jun 17, 2013 at 11:28 PM, Stefan Hajnoczi <stefa...@gmail.com> wrote: > On Sun, Jun 16, 2013 at 07:21:21PM +0800, Liu Ping Fan wrote: >> @@ -47,8 +47,12 @@ QEMUBH *aio_bh_new(AioContext *ctx, QEMUBHFunc *cb, void >> *opaque) >> bh->ctx = ctx; >> bh->cb = cb; >> bh->opaque = opaque; >> + qemu_mutex_lock(&ctx->bh_lock); >> bh->next = ctx->first_bh; >> + /* Make sure the memebers ready before putting bh into list */ > > s/memebers/members/ > Will fix, thanks. >> + smp_wmb(); > > Why lock bh_lock before assigning bh->next? Could you lock the mutex > here and then drop the smp_wmb() since the pthread function already does > that? > As Paolo's explain, it will open race gap for writers.
Thanks and regards, Pingfan > http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html#tag_04_11