mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 14:27:49 +00:00
Avoid deadlock on nested print! invokation
This commit is contained in:
@@ -126,9 +126,7 @@ impl fmt::Write for Writer {
|
|||||||
|
|
||||||
macro_rules! print {
|
macro_rules! print {
|
||||||
($($arg:tt)*) => ({
|
($($arg:tt)*) => ({
|
||||||
use core::fmt::Write;
|
$crate::vga_buffer::print(format_args!($($arg)*));
|
||||||
let mut writer = $crate::vga_buffer::WRITER.lock();
|
|
||||||
writer.write_fmt(format_args!($($arg)*)).unwrap();
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,6 +135,11 @@ macro_rules! println {
|
|||||||
($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\n"), $($arg)*));
|
($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\n"), $($arg)*));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn print(args: fmt::Arguments) {
|
||||||
|
use core::fmt::Write;
|
||||||
|
WRITER.lock().write_fmt(args).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn clear_screen() {
|
pub fn clear_screen() {
|
||||||
for _ in 0..BUFFER_HEIGHT {
|
for _ in 0..BUFFER_HEIGHT {
|
||||||
println!("");
|
println!("");
|
||||||
|
|||||||
Reference in New Issue
Block a user