• Packages
  • Themes
  • Documentation
  • Blog
  • Discussions
Sign in

fsync-on-save

On file save, flush (fsync) all the data to the storage device immediately.
adafruit
1.0.4 1,154
0
  • Repo
  • Bugs
  • Versions
  • License
Flag as spam or malicious

fsync-on-save

When Atom saves a file, sometimes you need to flush all the data to the storage device immediately. For instance, you might want to make sure data is written to a persistent storage medium promptly, or a file might be on on a removable drive that may be unplugged without notice.

This simple package does an fsync() or equivalent to write all the data immediately. The node.js function fs.fsyncSync() is called after the file is written.

The original motivation for this package was to make Atom be a safe editor for use with Adafruit Industries CircuitPython. CircuitPython will automatically reload and restart when a file is written to the CIRCUITPY drive. Several operating systems do not write all data and metadata to USB drives immediately. This delayed-write behavior can cause auto-reload to read an incompletely written version of the updated file (such as main.py or code.py) when CircuitPython restarts. It can also cause the CIRCUITPY filesystem to become corrupted if the board is unplugged or reset before the file is completely written.

As of this writing, this delayed-write behavior is noticeable on Windows and Linux, but not on MacOS. Note that Linux may still write additional metata to CIRCUITPY a minute or so later after saving the file, causing an auto-reload. That's a different problem which this package cannot address.

I think this package is bad news.

Good catch. Let us know what about this package looks wrong to you, and we'll investigate right away.

  • Terms of Use
  • Privacy
  • Code of Conduct
  • Releases
  • FAQ
  • Contact
with by