title: "Cannot borrow immutable content as mutable" when moving a closure into a thread
body: <p>In Rust, I want to specify a callback (e.g. a closure) to be called by a worker thread when something interesting happens. What would be the correct type signature for the callback?</p>
  
  <p>This is an example of what I am trying to do:</p>
  
  <pre><code>use std::thread;
  
  fn spawner(f: Box&lt;FnMut()-&gt;()+Send&gt;) -&gt; thread::JoinHandle&lt;()&gt; {
      thread::spawn(move || {
          f();
      })
  }
  
  
  fn main() {
      let cb = || {
          println!("callback");
      };
      spawner(Box::new(cb)).join().unwrap();
  }
  </code></pre>
  
  <blockquote>
  <pre><code>src/main.rs:5:9: 5:10 error: cannot borrow immutable `Box` content
  `*f` as mutable
  
  src/main.rs:5         f();
  </code></pre>
  </blockquote>