Re: librados aio completion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 16 Apr 2012, Greg Farnum wrote:
> On Monday, April 16, 2012 at 12:37 PM, Yehuda Sadeh Weinraub wrote:
> > On Mon, Apr 16, 2012 at 12:00 PM, Sage Weil <sage@xxxxxxxxxxxx (mailto:sage@xxxxxxxxxxxx)> wrote:
> > > 
> > > I pushed a wip-2301 that does this. The downside to this approach is that
> > > the is_safe() and is_complete() methods will return false until after the
> > > callback returns, which includes the callback itself. So a callback that
> > > assumes that is_complete() will return true will be wrong.
> > > 
> > > If that's not okay, the alternative is to make the wait_for_complete()
> > > actually be a wait_for_complete_and_callback_has_returned(). That drops
> > > the symmetry between wait_for_complete() and is_complete(), which is
> > > awkward.
> > 
> > 
> > maybe is_ack(), is_safe() and is_complete()?
> > 
> > Yehuda
> > --
> > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx (mailto:majordomo@xxxxxxxxxxxxxxx)
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> 
> Or set the bool to true, then do the callback, then signal? 

That's sort of what I was getting at with 
wait_for_complete_and_callback_returned().  We could make 
wait_for_complete() do that, although it should be a second bool because 
cond.Wait() can wake up nondeterministically (because of a signal or 
something).  For example I could clear the callback pointer after it 
returns, and make the wait loop check for the bool and callback_ptr == 
NULL.

It just means the wait_for_complete() does not actually wait for 
is_complete(), but is_complete() && did callback.  

sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux