Handle FUSE_INIT and FUSE_DESTROY non-concurrently

  • Replace futures::executor::ThreadPool by tokio::runtime::Runtime. This prepares for using tokio's implementation of RwLock which 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 calling init() or destroy() 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

Merge request reports

Loading