Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prefer std::atomic over MemoryBarrier #2

Merged
merged 1 commit into from Jul 12, 2017

Conversation

sipa
Copy link

@sipa sipa commented Apr 13, 2017

Also submitted upstream as google#449

In port/atomic_pointer.h, the preference is to use MemoryBarrier if available, and only fall back to std::atomic if it isn't available.

I believe it would be preferable to use std::atomic, as it may allow better performance, and integrates without changes into ThreadSanitizer.

This PR changes the preference to std::atomic if available.

@theuni
Copy link

theuni commented Jun 22, 2017

utACK ba8a445

@laanwj
Copy link
Member

laanwj commented Jun 22, 2017

As we use the C++11 atomics in other places in the code, we rely on them already, so using them here as well makes sense, even if just to reduce code duplication.
utACK ba8a445

@sipa sipa merged commit ba8a445 into bitcoin-core:bitcoin-fork Jul 12, 2017
sipa added a commit that referenced this pull request Jul 12, 2017
ba8a445 Prefer std::atomic over MemoryBarrier (Pieter Wuille)

Tree-SHA512: d25e9d2b3d149a16b3083515993f5e9a02576d6a6b58a39bdd3307a099c5656def5ac39d3bb25e9f638830de76b960b409bd8414df1ced3ed22794d8a6ab6f82
laanwj added a commit to bitcoin/bitcoin that referenced this pull request Aug 2, 2017
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
sickpig pushed a commit to sickpig/BitcoinUnlimited that referenced this pull request Aug 17, 2017
b13a68e Squashed 'src/leveldb/' changes from 196962ff0..c521b3ac6 (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)
mempko pushed a commit to meritlabs/merit that referenced this pull request Sep 28, 2017
b13a68e Squashed 'src/leveldb/' changes from 196962ff0..c521b3ac6 (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
cculianu pushed a commit to cculianu/bitcoin-abc that referenced this pull request Oct 5, 2017
Summary:
Includes:

  bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from Bitcoin-ABC#5 (Cory Fields)

Removes many warnings on MacOSX of the form:

  In file included from leveldb/util/cache.cc:10:
  In file included from ./leveldb/port/port.h:14:
  In file included from ./leveldb/port/port_posix.h:47:
  ./leveldb/port/atomic_pointer.h:55:3: warning: 'OSMemoryBarrier' is deprecated: first deprecated in macOS 10.12 - Use
      std::atomic_thread_fence() from <atomic> instead [-Wdeprecated-declarations]
        OSMemoryBarrier();
        ^

The bitcoin core patches have been included in BU already by sickpig.

Test Plan: make check.  Installed and running fine.

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D584
protonn pushed a commit to argentumproject/argentum that referenced this pull request Jan 11, 2018
Summary:
Includes:

  bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Removes many warnings on MacOSX of the form:

  In file included from leveldb/util/cache.cc:10:
  In file included from ./leveldb/port/port.h:14:
  In file included from ./leveldb/port/port_posix.h:47:
  ./leveldb/port/atomic_pointer.h:55:3: warning: 'OSMemoryBarrier' is deprecated: first deprecated in macOS 10.12 - Use
      std::atomic_thread_fence() from <atomic> instead [-Wdeprecated-declarations]
        OSMemoryBarrier();
        ^

The bitcoin core patches have been included in BU already by sickpig.

Test Plan: make check.  Installed and running fine.

Reviewers: #bitcoin_abc, deadalnix

Reviewed By: #bitcoin_abc, deadalnix

Differential Revision: https://reviews.bitcoinabc.org/D584
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 6, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 6, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 6, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 7, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 8, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
PastaPastaPasta pushed a commit to PastaPastaPasta/dash that referenced this pull request Aug 12, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
charlesrocket pushed a commit to AXErunners/axe that referenced this pull request Nov 30, 2019
b13a68e Squashed 'src/leveldb/' changes from 196962ff0..c521b3ac6 (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
barrystyle pushed a commit to PACGlobalOfficial/PAC that referenced this pull request Jan 22, 2020
b13a68e Squashed 'src/leveldb/' changes from 196962f..c521b3a (Pieter Wuille)

Pull request description:

  Includes:
  * bitcoin-core/leveldb-subtree#2: Prefer std::atomic over MemoryBarrier (Pieter Wuille)
  * bitcoin-core/leveldb-subtree#5: Move helper functions out of sse4.2 object (Cory Fields)
  * bitcoin-core/leveldb-subtree#6: Fixes typo (Dimitris Tsapakidis)
  * bitcoin-core/leveldb-subtree#10: Clean up compile-time warnings (gcc 7.1) (Matt Corallo)
  * bitcoin-core/leveldb-subtree#11: fixup define checks. Cleans up some oopses from #5 (Cory Fields)

Tree-SHA512: 2b88a99a86ed8c74c860de13a123ea7f5424d35d314be564820cf83aaae8308383403f7cd56f17c241cfee4885699796141fed666559c21044eaabaeea073315
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants