Handle FUSE_INIT and FUSE_DESTROY non-concurrently
- Replace
futures::executor::ThreadPoolbytokio::runtime::Runtime. This prepares for using tokio's implementation ofRwLockwhich are async aware. - Handling FUSE_INIT or FUSE_DESTROY requests shouldn't be done
concurrently with handling some other request. To enforce this, we
require an exclusive reference (
&mut self) when callinginit()ordestroy()functions.
Summary by Sourcery
Modify FUSE filesystem implementation to handle FUSE_INIT and FUSE_DESTROY requests non-concurrently and improve async handling
New Features:
- Add ability to differentiate between requests that require exclusive access and those that can be processed concurrently
Enhancements:
- Replace futures thread pool with tokio runtime for better async support
- Introduce separate handling methods for shared and exclusive access requests
- Add mechanism to ensure FUSE_INIT and FUSE_DESTROY are processed exclusively
Chores:
- Update Cargo dependencies to use tokio instead of futures
- Modify thread-safety and locking mechanisms
Edited by sourcery-ai