diff --git a/Cargo.lock b/Cargo.lock index f49cd505..f52e4133 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1215,9 +1215,9 @@ dependencies = [ [[package]] name = "io-reactor" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790a9f1564a15864f28605fb0613dee98c8ebeee0ace7a5c76c2118f0e202f78" +checksum = "c5673e46c1201c1d8778cef314a91a6072b9f2f5fa4b426eb9a929236c3901b1" dependencies = [ "amplify", "crossbeam-channel", diff --git a/radicle-node/Cargo.toml b/radicle-node/Cargo.toml index 923768bb..cf2f7e64 100644 --- a/radicle-node/Cargo.toml +++ b/radicle-node/Cargo.toml @@ -19,7 +19,7 @@ crossbeam-channel = { version = "0.5.6" } cyphernet = { version = "0.2.0", features = ["tor", "dns", "ed25519", "p2p-ed25519"] } fastrand = { version = "1.8.0" } git-ref-format = { version = "0.2", features = ["serde", "macro"] } -io-reactor = { version = "0.1.0", features = ["popol"] } +io-reactor = { version = "0.1.1", features = ["popol"] } lexopt = { version = "0.2.1" } libc = { version = "0.2.137" } log = { version = "0.4.17", features = ["std"] } diff --git a/radicle-node/src/service.rs b/radicle-node/src/service.rs index f5269895..12dbb7c6 100644 --- a/radicle-node/src/service.rs +++ b/radicle-node/src/service.rs @@ -379,7 +379,7 @@ where pub fn wake(&mut self) { let now = self.clock; - trace!("Wake +{}", now - self.start_time); + trace!(target: "service", "Wake +{}", now - self.start_time); if now - self.last_idle >= IDLE_INTERVAL { debug!(target: "service", "Running 'idle' task..."); diff --git a/radicle-node/src/wire/protocol.rs b/radicle-node/src/wire/protocol.rs index a68d31d9..e8152fee 100644 --- a/radicle-node/src/wire/protocol.rs +++ b/radicle-node/src/wire/protocol.rs @@ -6,7 +6,6 @@ use std::collections::VecDeque; use std::os::unix::io::AsRawFd; use std::os::unix::prelude::RawFd; use std::sync::Arc; -use std::time::{Duration, SystemTime}; use std::{fmt, io, net}; use amplify::Wrapper as _; @@ -19,6 +18,7 @@ use localtime::LocalTime; use netservices::resource::{ListenerEvent, NetAccept, NetTransport, SessionEvent}; use netservices::session::{ProtocolArtifact, Socks5Session}; use netservices::{NetConnection, NetProtocol, NetReader, NetSession, NetWriter}; +use reactor::Timestamp; use radicle::collections::HashMap; use radicle::node::NodeId; @@ -416,20 +416,20 @@ where type Transport = NetTransport>; type Command = Control; - fn tick(&mut self, _time: Duration) { - // FIXME: Change this once a proper timestamp is passed into the function. - self.service.tick(LocalTime::from(SystemTime::now())); + fn tick(&mut self, time: Timestamp) { + // TODO: Use millisecond precision. + self.service.tick(LocalTime::from_secs(time.as_secs())); } fn handle_timer(&mut self) { - self.service.wake() + self.service.wake(); } fn handle_listener_event( &mut self, socket_addr: net::SocketAddr, event: ListenerEvent>, - _: Duration, + _: Timestamp, ) { match event { ListenerEvent::Accepted(connection) => { @@ -462,7 +462,7 @@ where &mut self, fd: RawFd, event: SessionEvent>, - _: Duration, + _: Timestamp, ) { match event { SessionEvent::Established(ProtocolArtifact { state, .. }) => {