fix(tvix/store): Fix FUSE support on MacOS
This partially fixes b/312 and gets FUSE to work again on MacOS. It is mostly small type changes and an update to fuse-backend-rs because upstream currently doesn't work with MacFuse. It also sets the default FUSE thread count on MacOS to 1 because otherwise the mount command will hang when shutting down as only one thread gets ENODEV and all the others just keep blocking. Change-Id: Ifb3c4268caf296c487049c1dc4618acb32497f44 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9490 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com> Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
5c2cad0ac4
commit
cfb810d81a
9 changed files with 42 additions and 22 deletions
|
|
@ -139,12 +139,19 @@ enum Commands {
|
|||
},
|
||||
}
|
||||
|
||||
#[cfg(feature = "fuse")]
|
||||
#[cfg(all(feature = "fuse", not(target_os = "macos")))]
|
||||
fn default_threads() -> usize {
|
||||
std::thread::available_parallelism()
|
||||
.map(|threads| threads.into())
|
||||
.unwrap_or(4)
|
||||
}
|
||||
// On MacFUSE only a single channel will receive ENODEV when the file system is
|
||||
// unmounted and so all the other channels will block forever.
|
||||
// See https://github.com/osxfuse/osxfuse/issues/974
|
||||
#[cfg(all(feature = "fuse", target_os = "macos"))]
|
||||
fn default_threads() -> usize {
|
||||
1
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue