- fn recv_loop(&self, tx: PktSender) {
- let mut inbox = [0; UDP_PKT_SIZE];
-
- let mut recv_chans = self.channels.map(|chan| RecvChannel {
- chan,
- packets: (0..REL_BUFFER).map(|_| Cell::new(None)),
- seqnum: INIT_SEQNUM,
- });
-
- loop {
- if let Err(err) = self.recv_pkt(&mut inbox, &mut recv_chans, &tx) {
- if !tx.send(Err(err)).is_ok() {
- break;
- }
+ fn handle_err(&self, res: Result<(), Error>) -> bool {
+ if let Err(err) = res {
+ if !self.tx.send(Err(err)).is_ok() {
+ return false;