complete_external_callback();
} else {
complete_cb(rbd_comp, complete_arg);
- complete_event_socket();
- notify_callbacks_complete();
+ mark_complete_and_notify();
}
} else {
- complete_event_socket();
- notify_callbacks_complete();
+ mark_complete_and_notify();
}
tracepoint(librbd, aio_complete_exit);
// from multiple librbd-internal threads.
boost::asio::dispatch(ictx->asio_engine->get_api_strand(), [this]() {
complete_cb(rbd_comp, complete_arg);
- complete_event_socket();
- notify_callbacks_complete();
+ mark_complete_and_notify();
put();
});
}
-void AioCompletion::complete_event_socket() {
+void AioCompletion::mark_complete_and_notify() {
if (ictx != nullptr && event_notify && ictx->event_socket.is_valid()) {
ictx->event_socket_completions.push(this);
ictx->event_socket.notify();
}
-}
-void AioCompletion::notify_callbacks_complete() {
state = AIO_STATE_COMPLETE;
{
private:
void queue_complete();
void complete_external_callback();
- void complete_event_socket();
- void notify_callbacks_complete();
+ void mark_complete_and_notify();
};
class C_AioRequest : public Context {