Got a new client message.
This commit is contained in:
parent
9bd46f2393
commit
1e8bf33eaf
18
src/queue.rs
18
src/queue.rs
@ -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(®));
|
||||
(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"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user