diff --git a/performance-metrics/src/util.rs b/performance-metrics/src/util.rs index 98fd56828..0b42667df 100644 --- a/performance-metrics/src/util.rs +++ b/performance-metrics/src/util.rs @@ -8,6 +8,7 @@ use std::io::{ErrorKind, Seek, SeekFrom, Write}; use std::thread; use std::time::Duration; +use block::async_io::AsyncIo; use block::qcow::{QcowFile, RawFile}; use block::qcow_async::QcowDiskAsync; use block::qcow_sync::QcowDiskSync; @@ -65,6 +66,13 @@ pub fn qcow_async_tempfile(num_clusters: usize) -> (TempFile, QcowDiskAsync) { (tmp, disk) } +/// Drain `count` completions from a synchronous async_io backend. +pub fn drain_completions(async_io: &mut dyn AsyncIo, count: usize) { + for _ in 0..count { + async_io.next_completed_request(); + } +} + /// Spin and wait until the given eventfd becomes readable. pub fn wait_for_eventfd(notifier: &EventFd) { loop {