/** Mark commands as "transaction aborted". */ void abort() { Command.abort(commands, null); notifyState(ABORTED); }
/** Set command result as OK. */ void success() { for (Command c : commands) { if (c.getResult() == NOT_ATTEMPTED) { c.setResult(OK); } } notifyState(EXECUTED); }
proposal.notifyState(QUEUED);
@Override void start() throws IOException { for (Proposal p : todo) { p.notifyState(RUNNING); } try { ObjectId id; try (Repository git = leader.openRepository(); ProposedTimestamp ts = getSystem().getClock().propose()) { id = insertProposals(git, ts); blockUntil(ts); } runAsync(id); } catch (NoOp e) { for (Proposal p : todo) { p.success(); } leader.lock.lock(); try { leader.nextRound(); } finally { leader.lock.unlock(); } } catch (IOException e) { abort(); throw e; } }
/** Mark commands as "transaction aborted". */ void abort() { Command.abort(commands, null); notifyState(ABORTED); }
/** Mark commands as "transaction aborted". */ void abort() { Command.abort(commands, null); notifyState(ABORTED); }
/** Set command result as OK. */ void success() { for (Command c : commands) { if (c.getResult() == NOT_ATTEMPTED) { c.setResult(OK); } } notifyState(EXECUTED); }
/** Set command result as OK. */ void success() { for (Command c : commands) { if (c.getResult() == NOT_ATTEMPTED) { c.setResult(OK); } } notifyState(EXECUTED); }
void start() throws IOException { for (Proposal p : todo) { p.notifyState(RUNNING); } try { ObjectId id; try (Repository git = leader.openRepository()) { id = insertProposals(git); } runAsync(id); } catch (NoOp e) { for (Proposal p : todo) { p.success(); } leader.lock.lock(); try { leader.nextRound(); } finally { leader.lock.unlock(); } } catch (IOException e) { abort(); throw e; } }
proposal.notifyState(QUEUED);
proposal.notifyState(QUEUED);
@Override void start() throws IOException { for (Proposal p : todo) { p.notifyState(RUNNING); } try { ObjectId id; try (Repository git = leader.openRepository(); ProposedTimestamp ts = getSystem().getClock().propose()) { id = insertProposals(git, ts); blockUntil(ts); } runAsync(id); } catch (NoOp e) { for (Proposal p : todo) { p.success(); } leader.lock.lock(); try { leader.nextRound(); } finally { leader.lock.unlock(); } } catch (IOException e) { abort(); throw e; } }