diff options
-rw-r--r-- | src/lib.rs | 10 | ||||
-rw-r--r-- | src/recv.rs | 6 |
2 files changed, 5 insertions, 11 deletions
@@ -11,13 +11,7 @@ pub use prelude::*; use async_trait::async_trait; use num_enum::TryFromPrimitive; -use std::{ - cell::{Cell, OnceCell}, - collections::HashMap, - io, ops, - sync::Arc, - time::Instant, -}; +use std::{cell::OnceCell, collections::HashMap, io, ops, sync::Arc, time::Instant}; use tokio::{ sync::{mpsc, watch, Mutex, RwLock}, task::JoinSet, @@ -150,7 +144,7 @@ struct Split { } struct RecvChan { - packets: Vec<Cell<Option<Vec<u8>>>>, // char ** 😛 + packets: Vec<Option<Vec<u8>>>, // char ** 😛 splits: HashMap<u16, Split>, seqnum: u16, num: u8, diff --git a/src/recv.rs b/src/recv.rs index e685c9c..a88426f 100644 --- a/src/recv.rs +++ b/src/recv.rs @@ -2,7 +2,7 @@ use crate::{prelude::*, ticker, RecvChan, RecvWorker, RudpShare, Split}; use async_recursion::async_recursion; use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt}; use std::{ - cell::{Cell, OnceCell}, + cell::OnceCell, collections::HashMap, io, pin::Pin, @@ -34,7 +34,7 @@ impl<R: UdpReceiver, S: UdpSender> RecvWorker<R, S> { .map(|num| { Mutex::new(RecvChan { num, - packets: (0..REL_BUFFER).map(|_| Cell::new(None)).collect(), + packets: (0..REL_BUFFER).map(|_| None).collect(), seqnum: INIT_SEQNUM, splits: HashMap::new(), }) @@ -239,7 +239,7 @@ impl<R: UdpReceiver, S: UdpSender> RecvWorker<R, S> { println!("Rel"); let seqnum = cursor.read_u16::<BigEndian>()?; - chan.packets[to_seqnum(seqnum)].set(Some(cursor.remaining_slice().into())); + chan.packets[to_seqnum(seqnum)].replace(cursor.remaining_slice().into()); let mut ack_data = Vec::with_capacity(3); ack_data.write_u8(CtlType::Ack as u8)?; |