code: func Unmount(point string) error {
  	var cmd *exec.Cmd
  	switch runtime.GOOS {
  	case "darwin":
  		cmd = exec.Command("/usr/sbin/diskutil", "umount", "force", point)
  	case "linux":
  		cmd = exec.Command("fusermount", "-u", point)
  	default:
  		return errors.New("unmount: unimplemented")
  	}
  
  	errc := make(chan error, 1)
  	go func() {
  		if err := exec.Command("umount", point).Run(); err == nil {
  			errc <- err
  		}
  		// retry to unmount with the fallback cmd
  		errc <- cmd.Run()
  	}()
  	select {
  	case <-time.After(1 * time.Second):
  		return errors.New("umount timeout")
  	case err := <-errc:
  		return err
  	}
  }
docs: // Unmount attempts to unmount the provided FUSE mount point, forcibly
  // if necessary.