MCPcopy Create free account
hub / github.com/e2wugui/zeze / setLeader

Method setLeader

ZezeJava/ZezeJava/src/main/java/Zeze/Raft/Agent.java:520–545  ·  view source on GitHub ↗
(LeaderIs r, ConnectorProxy newLeader)

Source from the content-addressed store, hash-verified

518 }
519
520 public boolean setLeader(LeaderIs r, ConnectorProxy newLeader) throws Exception {
521 mutex.lock();
522 try {
523 if (r.Argument.getTerm() < term) {
524 logger.warn("Skip LeaderIs {} {}", newLeader.getName(), r);
525 return false;
526 }
527
528 logger.info("proxy set leader {} {}_{}->{} {}_{}",
529 null != leader ? leader.getName() : "",
530 null != leader ? leader.getConnector().getHostNameOrAddress() : "",
531 null != leader ? leader.getConnector().getPort() : "",
532 newLeader.getName(),
533 newLeader.getConnector().getHostNameOrAddress(),
534 newLeader.getConnector().getPort());
535 leader = newLeader; // change current Leader
536 term = r.Argument.getTerm();
537 newLeader.getConnector().start(); // try connect immediately
538 Action1<Agent> onSetLeader = this.onSetLeader;
539 if (onSetLeader != null)
540 onSetLeader.run(this);
541 return true;
542 } finally {
543 mutex.unlock();
544 }
545 }
546
547 public static class NetClient extends HandshakeClient {
548 private final Agent agent;

Callers 5

processLeaderIsMethod · 0.95
trySendLeaderIsMethod · 0.45
OnHandshakeDoneMethod · 0.45
setLeaderReadyMethod · 0.45
processGetLeaderMethod · 0.45

Calls 9

getHostNameOrAddressMethod · 0.80
lockMethod · 0.65
getNameMethod · 0.65
getPortMethod · 0.65
startMethod · 0.65
runMethod · 0.65
unlockMethod · 0.65
getTermMethod · 0.45
getConnectorMethod · 0.45

Tested by

no test coverage detected