mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-09 19:51:47 +00:00
* Fix syncing bugs by recursively attempting to process parents in the import queue, change BlockRootsIterator * Swap from crossbeam channel to tokio mpsc * Recursion fix * Remove exess block processing * Fix network lag, correct attestation topic * Correct network poll logic * Overhaul of SimpleSync and modify BlockRootsIterator to return start_slot * Fix bug in tests relating to StateRootsIterator * Remove old, commented-out heartbeat code. * Tidy docs on import queue enum * Change source logging msg in simple sync * Rename function parameter in simple sync * Use `BestBlockRootsIterator` in `reduced_tree` * Update comments for `BestBlockRootsIterator` * Fix duplicate dep in cargo.toml
45 lines
1.2 KiB
Rust
45 lines
1.2 KiB
Rust
use crate::Client;
|
|
use beacon_chain::BeaconChainTypes;
|
|
use exit_future::Exit;
|
|
use futures::{Future, Stream};
|
|
use slog::{debug, o};
|
|
use std::time::{Duration, Instant};
|
|
use tokio::runtime::TaskExecutor;
|
|
use tokio::timer::Interval;
|
|
|
|
/// The interval between heartbeat events.
|
|
pub const HEARTBEAT_INTERVAL_SECONDS: u64 = 5;
|
|
|
|
/// Spawns a thread that can be used to run code periodically, on `HEARTBEAT_INTERVAL_SECONDS`
|
|
/// durations.
|
|
///
|
|
/// Presently unused, but remains for future use.
|
|
pub fn run<T: BeaconChainTypes + Send + Sync + 'static>(
|
|
client: &Client<T>,
|
|
executor: TaskExecutor,
|
|
exit: Exit,
|
|
) {
|
|
// notification heartbeat
|
|
let interval = Interval::new(
|
|
Instant::now(),
|
|
Duration::from_secs(HEARTBEAT_INTERVAL_SECONDS),
|
|
);
|
|
|
|
let _log = client.log.new(o!("Service" => "Notifier"));
|
|
|
|
let heartbeat = |_| {
|
|
// There is not presently any heartbeat logic.
|
|
//
|
|
// We leave this function empty for future use.
|
|
Ok(())
|
|
};
|
|
|
|
// map error and spawn
|
|
let log = client.log.clone();
|
|
let heartbeat_interval = interval
|
|
.map_err(move |e| debug!(log, "Timer error {}", e))
|
|
.for_each(heartbeat);
|
|
|
|
executor.spawn(exit.until(heartbeat_interval).map(|_| ()));
|
|
}
|