Validator to leader (#1303)

* Add check in window_service to exit in checks for leader rotation, and propagate that service exit up to fullnode

* Added logic to shutdown Tvu once ReplicateStage finishes

* Added test for successfully shutting down validator and starting up leader

* Add test for leader validator interaction

* fix streamer to check for exit signal before checking socket again to prevent busy leaders from never returning

* PR comments - Rewrite make_consecutive_blobs() function, revert genesis function change
This commit is contained in:
carllin
2018-09-25 15:41:29 -07:00
committed by GitHub
parent 8a7545197f
commit e7383a7e66
13 changed files with 629 additions and 109 deletions

View File

@@ -27,6 +27,11 @@ fn recv_loop(
loop {
let msgs = re.allocate();
loop {
// Check for exit signal, even if socket is busy
// (for instance the leader trasaction socket)
if exit.load(Ordering::Relaxed) {
return Ok(());
}
let result = msgs.write().recv_from(sock);
match result {
Ok(()) => {
@@ -39,11 +44,7 @@ fn recv_loop(
channel.send(msgs)?;
break;
}
Err(_) => {
if exit.load(Ordering::Relaxed) {
return Ok(());
}
}
Err(_) => (),
}
}
}