mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 19:08:58 +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. |
||
---|---|---|
.. | ||
testdata | ||
.gitignore | ||
blockqueue.go | ||
blocks_test.go | ||
blocks.go | ||
debug.go | ||
doc.go | ||
virtualfs_test.go | ||
walk_test.go | ||
walk.go |