diff --git a/virtio-devices/src/vsock/device.rs b/virtio-devices/src/vsock/device.rs index b0d425ec3..fa793295c 100644 --- a/virtio-devices/src/vsock/device.rs +++ b/virtio-devices/src/vsock/device.rs @@ -333,7 +333,7 @@ impl VersionMapped for VsockState {} impl Vsock where - B: VsockBackend, + B: VsockBackend + Sync, { /// Create a new virtio-vsock device with the given VM CID and vsock /// backend. diff --git a/vmm/src/lib.rs b/vmm/src/lib.rs index 407e590fd..264037a9d 100644 --- a/vmm/src/lib.rs +++ b/vmm/src/lib.rs @@ -43,6 +43,7 @@ use std::os::unix::net::UnixListener; use std::os::unix::net::UnixStream; use std::panic::AssertUnwindSafe; use std::path::PathBuf; +use std::rc::Rc; use std::sync::mpsc::{Receiver, RecvError, SendError, Sender}; use std::sync::{Arc, Mutex}; use std::time::Instant; @@ -347,9 +348,9 @@ pub fn start_vmm_thread( vmm.setup_signal_handler()?; vmm.control_loop( - Arc::new(api_receiver), + Rc::new(api_receiver), #[cfg(feature = "guest_debug")] - Arc::new(gdb_receiver), + Rc::new(gdb_receiver), ) }) .map_err(Error::VmmThreadSpawn)? @@ -1791,8 +1792,8 @@ impl Vmm { fn control_loop( &mut self, - api_receiver: Arc>, - #[cfg(feature = "guest_debug")] gdb_receiver: Arc>, + api_receiver: Rc>, + #[cfg(feature = "guest_debug")] gdb_receiver: Rc>, ) -> Result<()> { const EPOLL_EVENTS_LEN: usize = 100;