@Override void start() throws IOException { ObjectId id; try (Repository git = leader.openRepository(); ProposedTimestamp ts = getSystem().getClock().propose(); ObjectInserter inserter = git.newObjectInserter()) { id = bumpTerm(git, ts, inserter); inserter.flush(); blockUntil(ts); } runAsync(id); }
@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; } }
@Override public void run() { MonotonicClock clk = getSystem().getClock(); try (Repository git = getLeader().openRepository(); ProposedTimestamp ts = clk.propose()) { try { update(git, req, ts); req.done(git); } catch (Throwable err) { req.setException(git, err); } } catch (IOException err) { req.setException(null, err); } } });
@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; } }
@Override public void run() { MonotonicClock clk = getSystem().getClock(); try (Repository git = getLeader().openRepository(); ProposedTimestamp ts = clk.propose()) { try { update(git, req, ts); req.done(git); } catch (Throwable err) { req.setException(git, err); } } catch (IOException err) { req.setException(null, err); } } });
@Override void start() throws IOException { ObjectId id; try (Repository git = leader.openRepository(); ProposedTimestamp ts = getSystem().getClock().propose(); ObjectInserter inserter = git.newObjectInserter()) { id = bumpTerm(git, ts, inserter); inserter.flush(); blockUntil(ts); } runAsync(id); }