rtio_mgt: use mutex's async_lock

This commit is contained in:
mwojcik 2022-05-25 10:36:38 +08:00
parent 596edb480c
commit 7a8f96dbd9

View File

@ -52,7 +52,7 @@ pub mod drtio {
if !link_rx_up(linkno).await {
return Err("link went down");
}
let _lock = aux_mutex.lock();
let _lock = aux_mutex.async_lock().await;
drtioaux_async::send(linkno, request).await.unwrap();
recv_aux_timeout(linkno, 200, timer).await
}
@ -91,7 +91,7 @@ pub mod drtio {
}
async fn sync_tsc(aux_mutex: &Rc<Mutex<bool>>, linkno: u8, timer: GlobalTimer) -> Result<(), &'static str> {
let _lock = aux_mutex.lock();
let _lock = aux_mutex.async_lock().await;
unsafe {
(csr::DRTIO[linkno as usize].set_time_write)(1);
@ -145,7 +145,7 @@ pub mod drtio {
}
async fn process_unsolicited_aux(aux_mutex: &Rc<Mutex<bool>>, linkno: u8) {
let _lock = aux_mutex.lock();
let _lock = aux_mutex.async_lock().await;
match drtioaux_async::recv(linkno).await {
Ok(Some(packet)) => warn!("[LINK#{}] unsolicited aux packet: {:?}", linkno, packet),
Ok(None) => (),