helix-mirror/helix-view
Michael Davis 855568fa34
Synchronize files after writing (#10735)
fsync(2) is a somewhat expensive operation that flushes writes to the
underlying disk/SSD. It's typically used by databases to ensure that
writes survive very hard failure scenarios like your cat kicking the
plug out of the wall. Synchronizing isn't automatically done by
`flush`ing (from the `std::io::Write` or `tokio::io::AsyncWriteExt`
traits). From the [`tokio::fs::File`] moduledocs:

> To ensure that a file is closed immediately when it is dropped, you
> should call `flush` before dropping it. Note that this does not ensure
> that the file has been fully written to disk; the operating system
> might keep the changes around in an in-memory buffer. See the
> `sync_all` method for telling the OS to write the data to disk.

[`tokio::fs::File`]: https://docs.rs/tokio/latest/tokio/fs/struct.File.html
2024-05-14 01:37:35 +02:00
..
src Synchronize files after writing (#10735) 2024-05-14 01:37:35 +02:00
tests/encoding Move helix-view/tests/*txt files to txts subdirectory (#372) 2021-06-25 15:59:06 +09:00
Cargo.toml build(deps): bump the rust-dependencies group across 1 directory with 11 updates (#10715) 2024-05-07 21:43:40 +02:00