Skip to content

adafruit/Atom-fsync-on-save

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

When saving to a CIRCUITPY drive, make sure the file is completely written out immediately.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published