mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 10:58:57 +00:00
f1a7dd766e
Per the sync/atomic bug note: > On ARM, x86-32, and 32-bit MIPS, it is the caller's > responsibility to arrange for 64-bit alignment of 64-bit words > accessed atomically. The first word in a variable or in an > allocated struct, array, or slice can be relied upon to be > 64-bit aligned. All atomic accesses of 64-bit variables in syncthing code base are currently ok (i.e they are all 64-bit aligned). Generally, the bug is triggered because of incorrect alignement of struct fields. Free variables (declared in a function) are guaranteed to be 64-bit aligned by the Go compiler. To ensure the code remains correct upon further addition/removal of fields, which would change the currently correct alignment, I added the following comment where required: // atomic, must remain 64-bit aligned See https://golang.org/pkg/sync/atomic/#pkg-note-BUG. |
||
---|---|---|
.. | ||
stbench | ||
stcli | ||
stcompdirs | ||
stcrashreceiver | ||
stdisco | ||
stdiscosrv | ||
stevents | ||
stfileinfo | ||
stfinddevice | ||
stfindignored | ||
stgenfiles | ||
stindex | ||
strelaypoolsrv | ||
strelaysrv | ||
stsigtool | ||
stvanity | ||
stwatchfile | ||
syncthing | ||
todos | ||
uraggregate | ||
ursrv | ||
.gitignore |