diff --git a/apis/console/src/lib.rs b/apis/console/src/lib.rs index 423344c1..20011214 100644 --- a/apis/console/src/lib.rs +++ b/apis/console/src/lib.rs @@ -39,6 +39,10 @@ impl Console { /// This is an alternative to `fmt::Write::write` /// because this can actually return an error code. pub fn write(s: &[u8]) -> Result<(), ErrorCode> { + // for an empty string the driver would never schedule an upcall, so the app would yield infinitely + if s.is_empty() { + return Ok(()); + } let called: Cell> = Cell::new(None); share::scope::< (