Radish alpha
h
Radicle Heartwood Protocol & Stack
Radicle
Git (anonymous pull)
Log in to clone via SSH
Update to fixed `io-reactor` timer
Dr Maxim Orlovsky committed 3 years ago
commit 158f1ff7faef7f1ba8fd4485cdcc2ef67203d0b5
parent e584bd6c1cbb5c8bb9b74a856f6fdd7c22392efe
4 files changed +11 -11
modified 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",
modified 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"] }
modified 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...");
modified 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<WireSession<G>>;
    type Command = Control<G>;

-
    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<WireSession<G>>,
-
        _: Duration,
+
        _: Timestamp,
    ) {
        match event {
            ListenerEvent::Accepted(connection) => {
@@ -462,7 +462,7 @@ where
        &mut self,
        fd: RawFd,
        event: SessionEvent<WireSession<G>>,
-
        _: Duration,
+
        _: Timestamp,
    ) {
        match event {
            SessionEvent::Established(ProtocolArtifact { state, .. }) => {