mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-24 17:26:47 +00:00
The ten-second back-off after a failed config write sat inside save() itself, so the save on exit could return without writing and lose the session's changes; it gates only the idle-time save now, through save_due(), and an explicit save always tries. The preset scan's failure handlers removed a broken preset and its .info after the per-file guard had ended, so another instance's fresh copy of that file could be deleted from under it; they take the guard too. A lock that is acquired ends the cool-down a timeout started, rather than letting every guard for the rest of it proceed unlocked whenever the lock is momentarily held. The lock file's identity is checked on every acquisition, one stat, since a handle to a replaced file locks nothing anyone else can see. Write access on Windows is probed with an open for writing, which sees ACLs where _waccess sees only the read-only attribute, and a temporary name too long for the filesystem falls back to an in-place write for a new file as well as an existing one. The lock tests restore the knobs they change however they end.
OrcaSlicer tests
Building, running and writing tests is documented on the wiki, under How to Test.
Two files here rather than there, because coding agents only read what is in the repository: