| commit | a4d5cc8368d62f66652e10d1c68155f7207c85c3 | [log] [tgz] |
|---|---|---|
| author | John Grossman <johngro@fuchsia.infra.roller.google.com> | Thu Jun 08 17:51:03 2023 +0000 |
| committer | Copybara-Service <copybara-worker@google.com> | Thu Jun 08 10:52:15 2023 -0700 |
| tree | 40ad30f5e4dbb7d9960acbe76d125f4ecc591cbf | |
| parent | 71a7e1cadd6411be0f47db148399592a6c7d5675 [diff] |
[roll] Roll fuchsia [concurrent] Make the SeqLock APIs easier to hold correctly. Change the SeqLock APIs exposed by libconcurrent to be easier to use correctly. In particular, make the memory-ordering synchronization approach (either acq/rel or fence) a part of the lock type itself. Then, introduce a new payload wrapper type (`SeqLockPayload<T, LockType>`) which is an thin layer on top of a `WellDefinedCopyable<T>` wrapper. The new wrapper type demands that the user pass the type of the lock the wrapper is meant to work with, and exposes `Read/Update` methods which do not give the user any control over the type of synchronization implemented. Instead, they simply "do the right thing" based on properties of the lock type. Additionally: 1) Update the lockdep wrappers present in `kconcurrent` in order to work with the new type-linked approach. 2) Update the existing users of SeqLock in the kernel. 3) Update the documentation in `libconcurrent`'s readme to demonstrate the new (harder to mess up) way to hold a SeqLock in the kernel. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/810594 Original-Revision: 9a82251106fc682536070fa391f12e79a6a0d3a3 GitOrigin-RevId: 840c624a3661bbb018963a6b7c223a071f1e3094 Change-Id: I4eecf5d06682c5cd15c626f99b009ab44a4eee5a
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.