Il 18/09/2012 17:02, Kevin Wolf ha scritto:
>>> >> +    qemu_co_mutex_unlock(&s->lock);
>>> >> +    qemu_co_rwlock_wrlock(&m->l2_writeback_lock);
>> > 
>> > Can anybody else take the lock as reader again at this point?  If not, I
>> > wonder if this is more clear if you write it as a CoQueue.
> This isn't "let one writer complete, then wake up n readers" (which
> would indeed be represented more naturally as CoQueue), but rather "let
> n readers complete, then wake up one writer".

So would it be representable as a list of children (matching the parent
pointer) and then unlocking is

  remove self from children list
  if the children list is empty, wake parent->co

?

Paolo

Reply via email to