diff --git a/tvix/store/src/bin/tvix-store.rs b/tvix/store/src/bin/tvix-store.rs index 8cd87abe9..ae72559d3 100644 --- a/tvix/store/src/bin/tvix-store.rs +++ b/tvix/store/src/bin/tvix-store.rs @@ -190,7 +190,11 @@ async fn main() -> Result<(), Box> { GRPCPathInfoService::from_client(path_info_service_client.clone()); tokio::task::spawn_blocking(move || { - let f = FUSE::new(path_info_service, directory_service, blob_service); + let f = FUSE::new( + Arc::new(blob_service), + Arc::new(directory_service), + path_info_service, + ); fuser::mount2(f, &dest, &[]) }) .await?? diff --git a/tvix/store/src/fuse/mod.rs b/tvix/store/src/fuse/mod.rs index a93f482eb..d28e2b309 100644 --- a/tvix/store/src/fuse/mod.rs +++ b/tvix/store/src/fuse/mod.rs @@ -1,24 +1,26 @@ use crate::{ blobservice::BlobService, directoryservice::DirectoryService, pathinfoservice::PathInfoService, }; +use std::sync::Arc; -pub struct FUSE { - blob_service: BS, - directory_service: DS, +pub struct FUSE { + blob_service: Arc, + directory_service: Arc, path_info_service: PS, } -impl FUSE { - pub fn new(path_info_service: PS, directory_service: DS, blob_service: BS) -> Self { +impl FUSE { + pub fn new( + blob_service: Arc, + directory_service: Arc, + path_info_service: PS, + ) -> Self { Self { blob_service, - path_info_service, directory_service, + path_info_service, } } } -impl fuser::Filesystem - for FUSE -{ -} +impl fuser::Filesystem for FUSE {}