Skip to content

sync/atomic: CAS on ARM does not provide memory fence #7977

@rui314

Description

@rui314
What does 'go version' print?
go version devel +2e591e82a8c8 Fri May 02 13:17:55 2014 -0700 + linux/amd64

What happened?
It's pointed out in https://golang.org/cl/91230048 that Go's CompareAndSwap
functions for ARM don't provide memory fence. As a result, on non-Linux OSes,
synchronization mechanisms including Mutex don't guarantee the Go memory model.

We need to add memory fence operations to CAS functions.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions