Update to fixed `io-reactor` timer
This commit is contained in:
parent
e584bd6c1c
commit
158f1ff7fa
|
|
@ -1215,9 +1215,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "io-reactor"
|
name = "io-reactor"
|
||||||
version = "0.1.0"
|
version = "0.1.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "790a9f1564a15864f28605fb0613dee98c8ebeee0ace7a5c76c2118f0e202f78"
|
checksum = "c5673e46c1201c1d8778cef314a91a6072b9f2f5fa4b426eb9a929236c3901b1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"amplify",
|
"amplify",
|
||||||
"crossbeam-channel",
|
"crossbeam-channel",
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ crossbeam-channel = { version = "0.5.6" }
|
||||||
cyphernet = { version = "0.2.0", features = ["tor", "dns", "ed25519", "p2p-ed25519"] }
|
cyphernet = { version = "0.2.0", features = ["tor", "dns", "ed25519", "p2p-ed25519"] }
|
||||||
fastrand = { version = "1.8.0" }
|
fastrand = { version = "1.8.0" }
|
||||||
git-ref-format = { version = "0.2", features = ["serde", "macro"] }
|
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" }
|
lexopt = { version = "0.2.1" }
|
||||||
libc = { version = "0.2.137" }
|
libc = { version = "0.2.137" }
|
||||||
log = { version = "0.4.17", features = ["std"] }
|
log = { version = "0.4.17", features = ["std"] }
|
||||||
|
|
|
||||||
|
|
@ -379,7 +379,7 @@ where
|
||||||
pub fn wake(&mut self) {
|
pub fn wake(&mut self) {
|
||||||
let now = self.clock;
|
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 {
|
if now - self.last_idle >= IDLE_INTERVAL {
|
||||||
debug!(target: "service", "Running 'idle' task...");
|
debug!(target: "service", "Running 'idle' task...");
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ use std::collections::VecDeque;
|
||||||
use std::os::unix::io::AsRawFd;
|
use std::os::unix::io::AsRawFd;
|
||||||
use std::os::unix::prelude::RawFd;
|
use std::os::unix::prelude::RawFd;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::time::{Duration, SystemTime};
|
|
||||||
use std::{fmt, io, net};
|
use std::{fmt, io, net};
|
||||||
|
|
||||||
use amplify::Wrapper as _;
|
use amplify::Wrapper as _;
|
||||||
|
|
@ -19,6 +18,7 @@ use localtime::LocalTime;
|
||||||
use netservices::resource::{ListenerEvent, NetAccept, NetTransport, SessionEvent};
|
use netservices::resource::{ListenerEvent, NetAccept, NetTransport, SessionEvent};
|
||||||
use netservices::session::{ProtocolArtifact, Socks5Session};
|
use netservices::session::{ProtocolArtifact, Socks5Session};
|
||||||
use netservices::{NetConnection, NetProtocol, NetReader, NetSession, NetWriter};
|
use netservices::{NetConnection, NetProtocol, NetReader, NetSession, NetWriter};
|
||||||
|
use reactor::Timestamp;
|
||||||
|
|
||||||
use radicle::collections::HashMap;
|
use radicle::collections::HashMap;
|
||||||
use radicle::node::NodeId;
|
use radicle::node::NodeId;
|
||||||
|
|
@ -416,20 +416,20 @@ where
|
||||||
type Transport = NetTransport<WireSession<G>>;
|
type Transport = NetTransport<WireSession<G>>;
|
||||||
type Command = Control<G>;
|
type Command = Control<G>;
|
||||||
|
|
||||||
fn tick(&mut self, _time: Duration) {
|
fn tick(&mut self, time: Timestamp) {
|
||||||
// FIXME: Change this once a proper timestamp is passed into the function.
|
// TODO: Use millisecond precision.
|
||||||
self.service.tick(LocalTime::from(SystemTime::now()));
|
self.service.tick(LocalTime::from_secs(time.as_secs()));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_timer(&mut self) {
|
fn handle_timer(&mut self) {
|
||||||
self.service.wake()
|
self.service.wake();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_listener_event(
|
fn handle_listener_event(
|
||||||
&mut self,
|
&mut self,
|
||||||
socket_addr: net::SocketAddr,
|
socket_addr: net::SocketAddr,
|
||||||
event: ListenerEvent<WireSession<G>>,
|
event: ListenerEvent<WireSession<G>>,
|
||||||
_: Duration,
|
_: Timestamp,
|
||||||
) {
|
) {
|
||||||
match event {
|
match event {
|
||||||
ListenerEvent::Accepted(connection) => {
|
ListenerEvent::Accepted(connection) => {
|
||||||
|
|
@ -462,7 +462,7 @@ where
|
||||||
&mut self,
|
&mut self,
|
||||||
fd: RawFd,
|
fd: RawFd,
|
||||||
event: SessionEvent<WireSession<G>>,
|
event: SessionEvent<WireSession<G>>,
|
||||||
_: Duration,
|
_: Timestamp,
|
||||||
) {
|
) {
|
||||||
match event {
|
match event {
|
||||||
SessionEvent::Established(ProtocolArtifact { state, .. }) => {
|
SessionEvent::Established(ProtocolArtifact { state, .. }) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue