It seems to me that anything done in the callback will have its own synchronisation which users can simply use to wait for the callback to complete. In that case, we should not have wait_for_* wait for the callback. -Sam On Mon, Apr 16, 2012 at 5:44 PM, Sage Weil <sage@xxxxxxxxxxxx> wrote: > On Mon, 16 Apr 2012, Yehuda Sadeh Weinraub wrote: >> wait_for_ack() : got ack or safe response, entails is_ack() >> wait_for_safe(): got safe response, entails is_safe(), is_ack() >> wait_for_complete(): done with the request, callback returned, entails >> is_complete(), is_safe(), is_ack() > > The problem is we already have is_complete() and it means what you mean by > is_ack(). > > Either: > 1- add new is_complete_and_cb() and wait_for_complete_and_cb(), > is_safe_and_cb() and wait_for_safe_and_cb(). > 2- make existing is_complete() mean the above (and > is_safe()/wait_for_safe() mean is_safe_and_cb()). is_complete() will > be false when called from the callback. (i.e., current wip branch.) > 3- is_complete() means is complete, but wait_for_complete() waits for > complete and cb. > 4- status quo (user has no idea when cb has been called). > > I like #1, personally. I doubt there are current users using both the cb > and wait_for_*() methods (aside from our functional tests). > > 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 -- 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