I have a FUSE-based virtual disk app which shows contents of remote server document system.
Every not-downloaded file shown in VFS has an extension .remotefile.
My goal was that when user opens a file (ie in Finder), to open it with my app which would then trigger file download and upon successful download rename the file so that it loses the .remotefile extension and open the file in the proper app ie by calling [NSWorkspace openFile:]
However, if I open a file which is in VFS, then the whole app hangs as if some fuse-internal deadlock happens. After 30 seconds disk gets unmounted because of fuse-timeout. It somehow seems related to the fact that file that I want to open is in VFS.
Ie, if I try to open a file on my desktop with the same extension then [AppDelegate openFile] is regularly called.
Expected:
when I open a file in VFS with registered file-extension (.remotefile), my app should get [AppDelegate openFile:] callback.
Actual:
App hangs when opening a file in VFS.
It does work properly when opening a file outside of VFS (ie file on Desktop).
Does anyone have a hint as to what could be the issue here? I also tried implementing simple - (NSData*) contentsAtPath:(NSString*)path fuse callback where I always return some content just to see if it's something related to file not-having any downloaded content yet, but the behavior stays the same.