From c3ddedafc4f13025778a95ae77a1b73534eab4d7 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Sun, 27 Nov 2022 11:45:50 -0700 Subject: [PATCH] ahcid: Yield instead of spin when waiting for interrupt --- ahcid/src/ahci/disk_ata.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ahcid/src/ahci/disk_ata.rs b/ahcid/src/ahci/disk_ata.rs index 15620c315a..3d64c0e401 100644 --- a/ahcid/src/ahci/disk_ata.rs +++ b/ahcid/src/ahci/disk_ata.rs @@ -1,5 +1,6 @@ use std::convert::TryInto; use std::ptr; +use std::thread; use syscall::io::Dma; use syscall::error::Result; @@ -109,7 +110,7 @@ impl DiskATA { if use_interrupts { return Ok(None); } else { - unsafe { pause(); } + thread::yield_now(); continue; } } @@ -144,7 +145,7 @@ impl DiskATA { if use_interrupts { return Ok(None); } else { - unsafe { pause(); } + thread::yield_now(); continue; } } else {