diff --git a/src/dragonball/Cargo.lock b/src/dragonball/Cargo.lock index 1352f2980f..048d9c8962 100644 --- a/src/dragonball/Cargo.lock +++ b/src/dragonball/Cargo.lock @@ -413,6 +413,7 @@ version = "0.1.0" dependencies = [ "arc-swap", "bytes", + "crossbeam-channel", "dbs-address-space", "dbs-allocator", "dbs-arch", diff --git a/src/dragonball/Cargo.toml b/src/dragonball/Cargo.toml index 9ef43a3e2d..5b51dd68f8 100644 --- a/src/dragonball/Cargo.toml +++ b/src/dragonball/Cargo.toml @@ -39,6 +39,7 @@ thiserror = "1" vmm-sys-util = "0.11.0" virtio-queue = { version = "0.4.0", optional = true } vm-memory = { version = "0.9.0", features = ["backend-mmap"] } +crossbeam-channel = "0.5.6" [dev-dependencies] slog-term = "2.9.0" @@ -47,7 +48,7 @@ test-utils = { path = "../libs/test-utils" } [features] acpi = [] -atomic-guest-memory = [ "vm-memory/backend-atomic" ] +atomic-guest-memory = ["vm-memory/backend-atomic"] hotplug = ["virtio-vsock"] virtio-vsock = ["dbs-virtio-devices/virtio-vsock", "virtio-queue"] virtio-blk = ["dbs-virtio-devices/virtio-blk", "virtio-queue"] diff --git a/src/dragonball/src/api/v1/vmm_action.rs b/src/dragonball/src/api/v1/vmm_action.rs index 886e9ec68e..56affcacf0 100644 --- a/src/dragonball/src/api/v1/vmm_action.rs +++ b/src/dragonball/src/api/v1/vmm_action.rs @@ -7,8 +7,8 @@ // found in the THIRD-PARTY file. use std::fs::File; -use std::sync::mpsc::{Receiver, Sender, TryRecvError}; +use crossbeam_channel::{Receiver, Sender, TryRecvError}; use log::{debug, error, info, warn}; use crate::error::{Result, StartMicroVmError, StopMicrovmError}; @@ -676,9 +676,9 @@ fn handle_cpu_topology( #[cfg(test)] mod tests { - use std::sync::mpsc::channel; use std::sync::{Arc, Mutex}; + use crossbeam_channel::unbounded; use dbs_utils::epoll_manager::EpollManager; use test_utils::skip_if_not_root; use vmm_sys_util::tempfile::TempFile; @@ -702,8 +702,8 @@ mod tests { } fn check_request(&mut self) { - let (to_vmm, from_api) = channel(); - let (to_api, from_vmm) = channel(); + let (to_vmm, from_api) = unbounded(); + let (to_api, from_vmm) = unbounded(); let epoll_mgr = EpollManager::default(); let vmm = Arc::new(Mutex::new(create_vmm_instance(epoll_mgr.clone()))); @@ -728,8 +728,8 @@ mod tests { fn test_vmm_action_receive_unknown() { skip_if_not_root!(); - let (_to_vmm, from_api) = channel(); - let (to_api, _from_vmm) = channel(); + let (_to_vmm, from_api) = unbounded(); + let (to_api, _from_vmm) = unbounded(); let epoll_mgr = EpollManager::default(); let vmm = Arc::new(Mutex::new(create_vmm_instance(epoll_mgr.clone()))); let mut vservice = VmmService::new(from_api, to_api); @@ -742,8 +742,8 @@ mod tests { #[should_panic] #[test] fn test_vmm_action_disconnected() { - let (to_vmm, from_api) = channel(); - let (to_api, _from_vmm) = channel(); + let (to_vmm, from_api) = unbounded(); + let (to_api, _from_vmm) = unbounded(); let epoll_mgr = EpollManager::default(); let vmm = Arc::new(Mutex::new(create_vmm_instance(epoll_mgr.clone()))); let mut vservice = VmmService::new(from_api, to_api);