{"action":"opened","issue":{"url":"https://api.github.com/repos/kinghajj/deque/issues/8","labels_url":"https://api.github.com/repos/kinghajj/deque/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/kinghajj/deque/issues/8/comments","events_url":"https://api.github.com/repos/kinghajj/deque/issues/8/events","html_url":"https://github.com/kinghajj/deque/issues/8","id":124364502,"number":8,"title":"Reduce usage of SeqCst ordering","user":{"login":"lhecker","id":2256941,"avatar_url":"https://avatars.githubusercontent.com/u/2256941?v=3","gravatar_id":"","url":"https://api.github.com/users/lhecker","html_url":"https://github.com/lhecker","followers_url":"https://api.github.com/users/lhecker/followers","following_url":"https://api.github.com/users/lhecker/following{/other_user}","gists_url":"https://api.github.com/users/lhecker/gists{/gist_id}","starred_url":"https://api.github.com/users/lhecker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lhecker/subscriptions","organizations_url":"https://api.github.com/users/lhecker/orgs","repos_url":"https://api.github.com/users/lhecker/repos","events_url":"https://api.github.com/users/lhecker/events{/privacy}","received_events_url":"https://api.github.com/users/lhecker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-12-30T15:53:26Z","updated_at":"2015-12-30T15:53:26Z","closed_at":null,"body":"An initial benchmark using [coio-rs](https://github.com/zonyitoo/coio-rs/), which uses this crate to implement work stealing coroutine scheduling, suggests that the specialization of using acquire/release ordering instead of sequential-consistent improves performance of this deque by up to 700% and overall performance of coio by about 3%, even though deque should play such a small part of the rest of the program (using OS X 10.11, i7 3770).\r\n\r\nIn this test I simply changed all loads to `Acquire`, all reads to `Release` and all `compare_and_swap` operations to `AcqRel`.\r\n\r\nIt would be nice if someone could confirm that acquire/release ordering is enough for all atomic operations, in case I missed something.\r\n\r\nOtherwise I'd be willing to send a PR. :blush: "}}