* Ian Lance Taylor <[email protected]> [190125 18:11]:
> On Fri, Jan 25, 2019 at 2:59 PM <[email protected]> wrote:
> > I still can't find anything "authoritative and unambiguous" on this.
> > Therefore apps are going to be released with bugs in them. Can
> > someone please say specifically when it is _not_ safe to use 64-bit
> > atomic operations?
> >
> > When it is unsafe on a 64-bit OS?
> > When it is unsafe on a 32-bit OS?
>
> Speaking pedantically, it's not the OS that matters, it's the
> processor (in Go terms, the GOARCH value).
>
> The exact rules can be seen at the bottom of
> https://golang.org/pkg/sync/atomic/ , in the "Bugs" section.
In that section it says "The first word in a variable or in an allocated
struct, array, or slice can be relied upon to be 64-bit aligned." Does
that mean that an embedded struct in an allocated struct may not be
aligned? As in
type A struct {
a uint64
}
type B struct {
b int8
d A
}
type C struct {
c int8
e *A
}
var x = B{3, A{4}}
var y = C{6, &A{7}}
x.d.a might not be aligned, but y.e.a will be?
Thanks...Marvin
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.