]> code.octet-stream.net Git - netwatcher/blobdiff - src/watch_win.rs
Support for cancelling linux watch
[netwatcher] / src / watch_win.rs
index a225f4a20c16c95f0cae051681345b21f0d96c15..23b274ea0d35ef3a992fc574ebdf44085423a445 100644 (file)
@@ -23,7 +23,7 @@ struct WatchState {
     /// The last result that we captured, for diffing
     prev_list: List,
     /// User's callback
     /// The last result that we captured, for diffing
     prev_list: List,
     /// User's callback
-    cb: Box<dyn FnMut(Update) + 'static>,
+    cb: Box<dyn FnMut(Update) + Send + 'static>,
 }
 
 pub(crate) struct WatchHandle {
 }
 
 pub(crate) struct WatchHandle {
@@ -39,7 +39,7 @@ impl Drop for WatchHandle {
     }
 }
 
     }
 }
 
-pub(crate) fn watch_interfaces<F: FnMut(Update) + 'static>(
+pub(crate) fn watch_interfaces<F: FnMut(Update) + Send + 'static>(
     callback: F,
 ) -> Result<WatchHandle, Error> {
     let state = Box::pin(Mutex::new(WatchState {
     callback: F,
 ) -> Result<WatchHandle, Error> {
     let state = Box::pin(Mutex::new(WatchState {
@@ -81,7 +81,8 @@ unsafe extern "system" fn notif(
 ) {
     let state_ptr = ctx as *const Mutex<WatchState>;
     unsafe {
 ) {
     let state_ptr = ctx as *const Mutex<WatchState>;
     unsafe {
-        let state_guard = &mut *state_ptr.as_ref()
+        let state_guard = &mut *state_ptr
+            .as_ref()
             .expect("callback ctx should never be null")
             .lock()
             .unwrap();
             .expect("callback ctx should never be null")
             .lock()
             .unwrap();