@@ -9,7 +9,6 @@ use std::cell::Cell;
99use std:: fmt:: { Display , Formatter } ;
1010use std:: io;
1111use std:: result;
12- use std:: sync:: mpsc:: { channel, Receiver , RecvTimeoutError , Sender } ;
1312#[ cfg( not( test) ) ]
1413use std:: sync:: { Arc , Mutex } ;
1514use std:: thread;
@@ -21,6 +20,7 @@ use crate::vmm_config::machine_config::CpuFeaturesTemplate;
2120
2221use arch;
2322use arch:: aarch64:: gic:: GICDevice ;
23+ use crossbeam_channel:: { unbounded, Receiver , RecvTimeoutError , Sender } ;
2424use devices:: legacy:: Gic ;
2525use hvf:: { HvfVcpu , HvfVm , VcpuExit } ;
2626use utils:: eventfd:: EventFd ;
@@ -267,8 +267,8 @@ impl Vcpu {
267267 _create_ts : TimestampUs ,
268268 intc : Arc < Mutex < Gic > > ,
269269 ) -> Result < Self > {
270- let ( event_sender, event_receiver) = channel ( ) ;
271- let ( response_sender, response_receiver) = channel ( ) ;
270+ let ( event_sender, event_receiver) = unbounded ( ) ;
271+ let ( response_sender, response_receiver) = unbounded ( ) ;
272272
273273 Ok ( Vcpu {
274274 id,
@@ -325,7 +325,7 @@ impl Vcpu {
325325 pub fn start_threaded ( mut self ) -> Result < VcpuHandle > {
326326 let event_sender = self . event_sender . take ( ) . unwrap ( ) ;
327327 let response_receiver = self . response_receiver . take ( ) . unwrap ( ) ;
328- let ( init_tls_sender, init_tls_receiver) = channel ( ) ;
328+ let ( init_tls_sender, init_tls_receiver) = unbounded ( ) ;
329329
330330 let vcpu_thread = thread:: Builder :: new ( )
331331 . name ( format ! ( "fc_vcpu {}" , self . cpu_index( ) ) )
@@ -441,7 +441,7 @@ impl Vcpu {
441441 let mut hvf_vcpu = HvfVcpu :: new ( ) . expect ( "Can't create HVF vCPU" ) ;
442442 let hvf_vcpuid = hvf_vcpu. id ( ) ;
443443
444- let ( wfe_sender, wfe_receiver) = channel ( ) ;
444+ let ( wfe_sender, wfe_receiver) = unbounded ( ) ;
445445 self . intc
446446 . lock ( )
447447 . unwrap ( )
@@ -599,11 +599,11 @@ enum VcpuEmulation {
599599
600600#[ cfg( test) ]
601601mod tests {
602+ #[ cfg( target_arch = "x86_64" ) ]
603+ use crossbeam_channel:: { unbounded, RecvTimeoutError } ;
602604 use std:: fs:: File ;
603605 #[ cfg( target_arch = "x86_64" ) ]
604606 use std:: os:: unix:: io:: AsRawFd ;
605- #[ cfg( target_arch = "x86_64" ) ]
606- use std:: sync:: mpsc;
607607 use std:: sync:: { Arc , Barrier } ;
608608 #[ cfg( target_arch = "x86_64" ) ]
609609 use std:: time:: Duration ;
@@ -619,7 +619,7 @@ mod tests {
619619 // Make sure the Vcpu is out of KVM_RUN.
620620 self . send_event ( VcpuEvent :: Pause ) . unwrap ( ) ;
621621 // Close the original channel so that the Vcpu thread errors and goes to exit state.
622- let ( event_sender, _event_receiver) = channel ( ) ;
622+ let ( event_sender, _event_receiver) = unbounded ( ) ;
623623 self . event_sender = event_sender;
624624 // Wait for the Vcpu thread to finish execution
625625 self . vcpu_thread . take ( ) . unwrap ( ) . join ( ) . unwrap ( ) ;
@@ -933,7 +933,7 @@ mod tests {
933933 handle
934934 . response_receiver( )
935935 . recv_timeout( Duration :: from_millis( 100 ) ) ,
936- Err ( mpsc :: RecvTimeoutError :: Timeout )
936+ Err ( RecvTimeoutError :: Timeout )
937937 ) ;
938938 }
939939
0 commit comments