extern crate fsevent;
use std::sync::mpsc::channel;
use std::thread;

fn main() {
  let (sender, receiver) = channel();

  let _t = thread::spawn(move || {
    let fsevent = fsevent::FsEvent::new(sender);
    fsevent.append_path("../../");
    fsevent.observe();
  });

  loop {
    let val = receiver.recv();
    println!("{:?}", val.unwrap());
  }
}

extern crate fsevent;
use std::sync::mpsc::channel;
use std::thread;

#[allow(dead_code)]
fn main() {
  let (sender, receiver) = channel();

  let _t = thread::spawn(move || {
    let fsevent = fsevent::FsEvent::new(sender);
    fsevent.append_path("../../");
    fsevent.observe();
  });

  loop {
    select! (
      val = receiver.recv() => {
        println!("{:?}", val.unwrap());
      }
    )
  }
}

--- 
+++ 
@@ -2,6 +2,7 @@
 use std::sync::mpsc::channel;
 use std::thread;
 
+#[allow(dead_code)]
 fn main() {
   let (sender, receiver) = channel();
 
@@ -12,7 +13,10 @@
   });
 
   loop {
-    let val = receiver.recv();
-    println!("{:?}", val.unwrap());
+    select! (
+      val = receiver.recv() => {
+        println!("{:?}", val.unwrap());
+      }
+    )
   }
 }
Remove select and fix sample code
