zargony / fuse-rs

Rust library for filesystems in userspace (FUSE)
MIT License
1.05k stars 131 forks source link

Can Channel.receive() be interrupted? #150

Open changweige opened 3 years ago

changweige commented 3 years ago

Hi, After a quick glance at this fuse-rs crate. If I didn't miss something, it seems that it can't be interrupted when reading(receive()) messages from fuse device like what libfuse does. Is that not essential for a fuse library? Looks like that this fuse-rs relies on umount(2) to close in-kernel fuse device fd to unblock read(2). Can we just interrupt read(2) and make relevant threads exit in an elegant way. Or is Rust thread model limits?