message: fix scoped_exit
diff: @@ -9,6 +9,9 @@ namespace fc {
  scoped_exit( C&& c ):callback( std::forward<C>(c) ){}
  scoped_exit( scoped_exit&& mv ):callback( std::move( mv.callback ) ){}
  + scoped_exit( const scoped_exit& ) = delete;
  + scoped_exit& operator=( const scoped_exit& ) = delete;
  +
  void cancel() { canceled = true; }
  ~scoped_exit() {
  @@ -17,13 +20,16 @@ namespace fc {
  }
  scoped_exit& operator = ( scoped_exit&& mv ) {
  + if( this != &mv ) {
  + ~scoped_exit();
  callback = std::move(mv.callback);
  + canceled = mv.canceled;
  + mv.canceled = true;
  + }
  +
  return *this;
  }
  private:
  - scoped_exit( const scoped_exit& );
  - scoped_exit& operator=( const scoped_exit& );
  -
  Callback callback;
  bool canceled = false;
  };
  