From a634bb17e40de45949714b2ac7306bfe14cfaa5a Mon Sep 17 00:00:00 2001 From: Joao Eduardo Luis Date: Tue, 16 Apr 2013 16:41:18 +0100 Subject: [PATCH] mon: PaxosService: is_writeable() depends on being ready to be written to Signed-off-by: Joao Eduardo Luis --- src/mon/PaxosService.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/mon/PaxosService.h b/src/mon/PaxosService.h index e8cd214783cb6..cd112e10fed1f 100644 --- a/src/mon/PaxosService.h +++ b/src/mon/PaxosService.h @@ -503,13 +503,25 @@ public: * - we have a valid lease; * - Paxos is not boostrapping. * - Paxos is not recovering. + * - we are ready to be written to -- i.e., we have a pending value. * * @returns true if writeable; false otherwise */ bool is_writeable() { return (is_active() && mon->is_leader() - && paxos->is_lease_valid()); + && paxos->is_lease_valid() + && is_write_ready()); + } + + /** + * Check if we are ready to be written to. This means we must have a + * pending value and be active. + * + * @returns true if we are ready to be written to; false otherwise. + */ + bool is_write_ready() { + return is_active() && have_pending; } /** -- 2.39.5