Are fuse_mount and fuse3_mount blocking?
#440
-
|
When not relying on fuse = fuse_new(&args, op, op_size, user_data);
se = fuse_get_session(fuse);
fuse_set_signal_handlers(se);
fuse_mount(se, mountpoint);
fuse_daemonize(fg);
if (mt)
fuse_loop_mt(fuse);
else
fuse_loop(fuse);
fuse_remove_signal_handlers(se);
fuse_unmount(se);
fuse_destroy(fuse);We noticed some timing-related issues with WinFSP right after Therefore, I'd like to ask, whether |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
|
Your observation re: Although I do not remember the full reasons for this, I believe this was necessary because of the differences between the UNIX and Windows mounting approaches. Looking at the code I realize that there is no reliable indicator that the file system mount point has been created in WinFsp-FUSE. This is because the Can you perhaps describe the reason that you need to know when the in-kernel file system and/or mount point is created (these are two separate events on Windows)? Perhaps I can suggest an alternative solution to the problem. |
Beta Was this translation helpful? Give feedback.
Your observation re:
fuse_mountis correct. The mountpoint is not ready when this function returns. The mountpoint is created within thefuse_loop(orfuse_loop_mt) functions.Although I do not remember the full reasons for this, I believe this was necessary because of the differences between the UNIX and Windows mounting approaches.
Looking at the code I realize that there is no reliable indicator that the file system mount point has been created in WinFsp-FUSE. This is because the
initcall also happens before the actual (in-kernel) file system is created (some of the information gathered byinitand subsequentstatfscalls, etc. is used to initialize the in-kernel file system).init