commit | 9f42f38d80f5ceaf380016583e9dcdfa38c15900 | [log] [tgz] |
---|---|---|
author | James Robinson <jamesr@fuchsia.infra.roller.google.com> | Thu Feb 22 02:43:25 2024 +0000 |
committer | Copybara-Service <copybara-worker@google.com> | Wed Feb 21 18:44:47 2024 -0800 |
tree | 2654499dd93c76ec90196b7192ab16e027742301 | |
parent | 499bb529cc3029b861cf02745ec27857e9f7ae13 [diff] |
[roll] Roll fuchsia [libc] Remove extraneous fence from call_once The atomic_load on control establishes a happens-before relationship with the atomic_exchange on control as both use the (implicit) memory order seq_cst. The pthread_once implementation was originally based on a bespoke memory model using volatile load/stores and memory barriers. This fence was updated to a C11 atomic fence in this change: https://fuchsia.googlesource.com/fuchsia/+/13e7f0cdbfa9ba53c714180089306816abcd7fea%5E%21/#F3 The other synchronization operations were updated to use C11 atomics in this later change: https://fuchsia.googlesource.com/fuchsia/+/f2373edae22bc921a41286318243b3985102b510%5E%21/#F9 But the fence operation was left in place. This was noticed in our storage benchmarks when boringssl added calls to CRYPTO_library_init which internally calls pthread_once to many entry points. Original-Bug: https://fxbug.dev/324138139 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/994159 Original-Revision: 0221b74216992af9a20e076aadc19998833b5356 GitOrigin-RevId: 37ba0367a24674bc0de9038de3b50f0b25cc4232 Change-Id: I792a4376e67a0cb414e6f99a047ed0075630d604
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia
on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party
.