diff --git a/kernel/src/fs/file.rs b/kernel/src/fs/file.rs index 1f409a0..b5429e6 100644 --- a/kernel/src/fs/file.rs +++ b/kernel/src/fs/file.rs @@ -2,6 +2,7 @@ use alloc::{string::String, sync::Arc}; use core::fmt; +use crate::thread; use rcore_fs::vfs::{FsError, INode, Metadata, PollStatus, Result}; @@ -58,7 +59,9 @@ impl FileHandle { len = read_len; break; } - Err(FsError::Again) => {} + Err(FsError::Again) => { + thread::yield_now(); + } Err(err) => { return Err(err); } diff --git a/user b/user index 4f90dd0..bbcee24 160000 --- a/user +++ b/user @@ -1 +1 @@ -Subproject commit 4f90dd042bacdb7eee61ae35ab60b9e17bc70cf7 +Subproject commit bbcee244e80eecd9b69839462d3ed89ef78f8d88