Yeild when polling for EAGAIN

toolchain_update
Jiajie Chen 6 years ago
parent dcfb02c514
commit 30f94238b8

@ -2,6 +2,7 @@
use alloc::{string::String, sync::Arc}; use alloc::{string::String, sync::Arc};
use core::fmt; use core::fmt;
use crate::thread;
use rcore_fs::vfs::{FsError, INode, Metadata, PollStatus, Result}; use rcore_fs::vfs::{FsError, INode, Metadata, PollStatus, Result};
@ -58,7 +59,9 @@ impl FileHandle {
len = read_len; len = read_len;
break; break;
} }
Err(FsError::Again) => {} Err(FsError::Again) => {
thread::yield_now();
}
Err(err) => { Err(err) => {
return Err(err); return Err(err);
} }

@ -1 +1 @@
Subproject commit 4f90dd042bacdb7eee61ae35ab60b9e17bc70cf7 Subproject commit bbcee244e80eecd9b69839462d3ed89ef78f8d88
Loading…
Cancel
Save