Compare commits

...

2 Commits

Author SHA1 Message Date
Charles Duffy 39a8f3680b
Merge 8b2f5834a6 into 4418e338e8 2025-07-18 22:49:31 +00:00
Charles Duffy 8b2f5834a6
fix: Ignore unsupported errors when trying to flush saved files to disk (#12723) 2025-07-18 17:45:07 -05:00
1 changed files with 15 additions and 1 deletions

View File

@ -1065,7 +1065,21 @@ impl Document {
let write_result: anyhow::Result<_> = async { let write_result: anyhow::Result<_> = async {
let mut dst = tokio::fs::File::create(&write_path).await?; let mut dst = tokio::fs::File::create(&write_path).await?;
to_writer(&mut dst, encoding_with_bom_info, &text).await?; to_writer(&mut dst, encoding_with_bom_info, &text).await?;
dst.sync_all().await?; // Ignore ENOTSUP/EOPNOTSUPP (Operation not supported) errors from sync_all()
// This is known to occur on SMB filesystems on macOS where fsync is not supported
if let Err(e) = dst.sync_all().await {
#[cfg(target_os = "macos")]
{
match e.raw_os_error() {
Some(45) | Some(102) => {}, // ENOTSUP or EOPNOTSUPP - ignore
_ => return Err(e.into()),
}
}
#[cfg(not(target_os = "macos"))]
{
return Err(e.into());
}
}
Ok(()) Ok(())
} }
.await; .await;