Got a new client message.

This commit is contained in:
Jeff Baskin 2025-03-30 16:24:58 -04:00
parent 9bd46f2393
commit 1e8bf33eaf

View File

@ -130,10 +130,11 @@ impl Queue {
fn listen(&mut self) {
loop {
let msg = self.rx.recv().unwrap();
let mut msg = self.rx.recv().unwrap();
msg.id = Uuid::max();
let senders = self.registry.read().unwrap();
for sender in senders.iter() {
sender.send(Message::new()).unwrap();
sender.send(msg.reply(MsgType::ClientMessage)).unwrap();
}
}
}
@ -146,14 +147,11 @@ mod queues {
static TIMEOUT: Duration = Duration::from_millis(500);
fn start_queue() -> (
Sender<Message>,
Receiver<Message>,
) {
fn start_queue() -> (Sender<Message>, Receiver<Message>) {
let reg: Arc<RwLock<Vec<Sender<Message>>>> = Arc::new(RwLock::new(Vec::new()));
let (tx, rx) = channel::<Message>();
let mut data = reg.write().unwrap();
data.push(tx.clone());
data.push(tx);
drop(data);
let queue_tx = Queue::start(Arc::clone(&reg));
(queue_tx, rx)
@ -165,6 +163,10 @@ mod queues {
let initial = Message::new();
let msg = initial.reply(MsgType::NewClientMessage);
tx.send(msg).unwrap();
rx.recv_timeout(TIMEOUT).unwrap();
let msg = rx.recv_timeout(TIMEOUT).unwrap();
match msg.class {
MsgType::ClientMessage => assert_ne!(msg.id, initial.id),
_ => unreachable!("should have been a client message"),
}
}
}