Added drop to clock.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
2026-05-13 17:07:12 -04:00
parent d67bed6bbf
commit 2995710e59

View File

@@ -7,6 +7,7 @@ use crate::{
queue::{
data_director::{Include, Path, RegMsg, Register},
router::Queue,
SenderID,
},
};
use chrono::{DateTime, Utc};
@@ -37,13 +38,15 @@ impl Pulser {
pub struct Clock {
queue: Queue,
rx: Receiver<Message>,
sender_id: SenderID,
}
impl Clock {
fn new(queue: Queue, rx: Receiver<Message>) -> Self {
fn new(queue: Queue, rx: Receiver<Message>, id: SenderID) -> Self {
Self {
queue: queue,
rx: rx,
sender_id: id,
}
}
@@ -85,7 +88,7 @@ impl Clock {
let reg_msg = Register::new(id.clone(), RegMsg::AddRoute(path.clone()));
queue.send(Message::new(reg_msg));
rx.recv().unwrap(); // Wait for completion.
let clock = Clock::new(queue.clone(), rx);
let clock = Clock::new(queue.clone(), rx, id);
spawn(move || {
clock.listen();
});
@@ -100,6 +103,12 @@ impl Clock {
}
}
impl Drop for Clock {
fn drop(&mut self) {
self.queue.remove_sender(&self.sender_id);
}
}
#[cfg(test)]
mod clocks {
use super::*;