{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/5045","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/5045/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/5045/comments","events_url":"https://api.github.com/repos/golang/go/issues/5045/events","html_url":"https://github.com/golang/go/issues/5045","id":51283037,"number":5045,"title":"doc: define how sync/atomic interacts with memory model","user":{"login":"rsc","id":104030,"avatar_url":"https://avatars2.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"labels":[{"id":373401956,"url":"https://api.github.com/repos/golang/go/labels/NeedsDecision","name":"NeedsDecision","color":"ededed","default":false}],"state":"open","locked":false,"assignee":{"login":"rsc","id":104030,"avatar_url":"https://avatars2.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"assignees":[{"login":"rsc","id":104030,"avatar_url":"https://avatars2.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/49","html_url":"https://github.com/golang/go/milestone/49","labels_url":"https://api.github.com/repos/golang/go/milestones/49/labels","id":2053058,"number":49,"title":"Go1.9","description":"","creator":{"login":"rsc","id":104030,"avatar_url":"https://avatars2.githubusercontent.com/u/104030?v=3","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":530,"closed_issues":299,"state":"open","created_at":"2016-10-06T18:17:55Z","updated_at":"2017-04-14T08:45:07Z","due_on":"2017-07-31T07:00:00Z","closed_at":null},"comments":46,"created_at":"2013-03-13T21:21:49Z","updated_at":"2017-04-14T10:33:17Z","closed_at":null,"body":"<pre>Neither golang.org/ref/mem nor golang.org/pkg/sync/atomic say anything about what\nguarantees are made by the atomic operations wrt the memory model. They should be as\nweak as possible, of course, but right now they are non-existence, which is a little too\nweak.\n\nWe might say, for example, that an atomic.Store writing a value to a memory location\nhappens before an atomic.Load that reads that value from the memory location. Is that\nsomething we want to say? If not, what do we want to say?\n\nWhat about Add?\n\nWhat about CompareAndSwap?</pre>\n"},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/294133100","html_url":"https://github.com/golang/go/issues/5045#issuecomment-294133100","issue_url":"https://api.github.com/repos/golang/go/issues/5045","id":294133100,"user":{"login":"TheCount","id":558229,"avatar_url":"https://avatars1.githubusercontent.com/u/558229?v=3","gravatar_id":"","url":"https://api.github.com/users/TheCount","html_url":"https://github.com/TheCount","followers_url":"https://api.github.com/users/TheCount/followers","following_url":"https://api.github.com/users/TheCount/following{/other_user}","gists_url":"https://api.github.com/users/TheCount/gists{/gist_id}","starred_url":"https://api.github.com/users/TheCount/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheCount/subscriptions","organizations_url":"https://api.github.com/users/TheCount/orgs","repos_url":"https://api.github.com/users/TheCount/repos","events_url":"https://api.github.com/users/TheCount/events{/privacy}","received_events_url":"https://api.github.com/users/TheCount/received_events","type":"User","site_admin":false},"created_at":"2017-04-14T10:33:17Z","updated_at":"2017-04-14T10:33:17Z","body":"Agreed. It totally escaped me that the channel implementation does not need sequential consistency. In this light, giving sync.atomic seq-cons semantics makes perfect sense: they complement channels."}}
{"actor":{"display_login":"TheCount"}}