zargony/rust-fuse — pull request #15 by MicahChalmer (2014-03-24 10:56:33+00:00)
Title: On OS X only, use libc unmount directly

On OS X, fuse_unmount_compat22 calls realpath, which calls back into the
file system. If an error is returned from this operation, it then
proceeds to silently do nothing. This can cause a background filesystem
to stay mounted and hang rather than unmounting when a BackgroundSession
is destroyed.

So instead, we get the realpath at mount time, and then at unmount just
call unmount directly.

This only applies to OS X. On other platforms, fuse_unmount_compat22 is
more complex, and still needs to be used.

Fixes #7.