net/chan: split state runner.

This commit is contained in:
Dario Nieuwenhuis
2022-12-27 01:07:58 +01:00
parent 4a4b593694
commit 771806be79
2 changed files with 20 additions and 12 deletions

View File

@ -25,16 +25,16 @@ pub struct Runner<'d, D: Driver<'d>, const MTU: usize> {
impl<'d, D: Driver<'d>, const MTU: usize> Runner<'d, D, MTU> {
pub async fn run(mut self) -> ! {
let (mut rx_chan, mut tx_chan) = self.ch.split();
let (state_chan, mut rx_chan, mut tx_chan) = self.ch.split();
let rx_fut = async move {
loop {
trace!("WAITING for connection");
rx_chan.set_link_state(LinkState::Down);
state_chan.set_link_state(LinkState::Down);
self.rx_usb.wait_connection().await.unwrap();
trace!("Connected");
rx_chan.set_link_state(LinkState::Up);
state_chan.set_link_state(LinkState::Up);
loop {
let p = rx_chan.rx_buf().await;