mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2026-08-05 02:19:16 +00:00
eject_device calls shutdown, but Block doesn't implement it, so the worker thread was never joined. Drop for Block does not help either, VirtioPciDevice keeps an Arc<Mutex<Block>> past eject, so Drop never runs. The async worker keeps completing in-flight I/O into the guest RAM that backed it when issued. Implement shutdown() to call wait_for_epoll_threads(), which drops the WorkerThreads handle and ensures that worker's io completes. Signed-off-by: Dylan Reid <dgreid@fb.com>