extend_lease();
}
- finish_contexts(g_ceph_context, waiting_for_commit);
-
assert(g_conf->paxos_kill_at != 10);
finish_round();
op->mark_paxos_event("store_state");
store_state(commit);
- if (do_refresh()) {
- finish_contexts(g_ceph_context, waiting_for_commit);
- }
+ (void)do_refresh();
}
void Paxos::extend_lease()
shutdown_cond.Wait(mon->lock);
finish_contexts(g_ceph_context, waiting_for_writeable, -ECANCELED);
- finish_contexts(g_ceph_context, waiting_for_commit, -ECANCELED);
finish_contexts(g_ceph_context, waiting_for_readable, -ECANCELED);
finish_contexts(g_ceph_context, waiting_for_active, -ECANCELED);
finish_contexts(g_ceph_context, pending_finishers, -ECANCELED);
// no chance to write now!
finish_contexts(g_ceph_context, waiting_for_writeable, -EAGAIN);
- finish_contexts(g_ceph_context, waiting_for_commit, -EAGAIN);
finish_contexts(g_ceph_context, pending_finishers, -EAGAIN);
finish_contexts(g_ceph_context, committing_finishers, -EAGAIN);
finish_contexts(g_ceph_context, committing_finishers, -EAGAIN);
finish_contexts(g_ceph_context, pending_finishers, -EAGAIN);
- finish_contexts(g_ceph_context, waiting_for_commit, -EAGAIN);
finish_contexts(g_ceph_context, waiting_for_active, -EAGAIN);
logger->inc(l_paxos_restart);
* not on the active state, or if the lease has expired.
*/
list<Context*> waiting_for_writeable;
- /**
- * List of callbacks waiting for a commit to finish.
- *
- * @remarks This may be used to a) wait for an on-going commit to finish
- * before we proceed with, say, a new proposal; or b) wait for the
- * next commit to be finished so we are sure that our value was
- * fully committed.
- */
- list<Context*> waiting_for_commit;
/**
* Pending proposal transaction
* something) that will be deferred (e.g., until the current round finishes).
*/
bool trigger_propose();
-
- /**
- * Add oncommit to the back of the list of callbacks waiting for us to
- * finish committing.
- *
- * @param oncommit A callback
- */
- void wait_for_commit(Context *oncommit) {
- waiting_for_commit.push_back(oncommit);
- }
- /**
- * Add oncommit to the front of the list of callbacks waiting for us to
- * finish committing.
- *
- * @param oncommit A callback
- */
- void wait_for_commit_front(Context *oncommit) {
- waiting_for_commit.push_front(oncommit);
- }
/**
* @}
*/