Context *ctx = new FunctionContext([this, r, desc](int _r) {
{
Mutex::Locker locker(m_lock);
+ assert(m_state == STATE_STARTING);
m_state = STATE_STOPPING;
if (r < 0 && r != -ECANCELED) {
derr << "start failed: " << cpp_strerror(r) << dendl;
dout(20) << "processing entry tid=" << m_replay_entry.get_commit_tid()
<< dendl;
+ // stop replaying events if stop has been requested
+ if (on_replay_interrupted()) {
+ m_event_replay_tracker.finish_op();
+ return;
+ }
+
Context *on_ready = create_context_callback<
ImageReplayer, &ImageReplayer<I>::handle_process_entry_ready>(this);
Context *on_commit = new C_ReplayCommitted(this, std::move(m_replay_entry));