0
Files
src/content/browser
Evan Stade d9055a7796 IDB: rework lock manager to support request prioritization.
Currently nothing uses the prioritization, so there should be no
behavior change.

Design-wise, the big changes are:
* switching from every lockable entity maintaining its own queue of
  blocked requests, to the manager maintaining a single queue of
  requests (where each request covers multiple locks, i.e. a single
  call to AcquireLocks). This is to make it easier to verify whether
  requests as a whole block each other (are "overlapping"), and whether
  it's safe to prioritize one over another without the potential for
  gridlock.
* not granting any lock until *all* requested locks are available.
  This doesn't make a difference in terms of how quickly requests will
  be served, but it makes it easier to deal with prioritization because
  there's never a need to take back locks from a partially granted
  request.

Some classes and structs are renamed for clarity, but some are left
as-is to reduce diff noise. e.g., "partitioned" is at this point a
throwaway word as two locks with different "partitions" are handled
no differently from locks whose IDs differ in the non-partition
field, so it will make sense to simplify naming by removing
"partition", but that's left as a TODO.

Bug: 359623664
Change-Id: I7ec862e1a9ddf23065aad65b7ceacd0d522380cf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5786780
Reviewed-by: Brad Triebwasser <btriebw@chromium.org>
Commit-Queue: Evan Stade <estade@chromium.org>
Reviewed-by: Nathan Memmott <memmott@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1345720}
2024-08-22 23:11:27 +00:00
..
2024-08-06 02:43:45 +00:00
2024-08-22 20:57:19 +00:00
2024-08-01 20:17:28 +00:00
2024-08-22 20:57:19 +00:00
2024-08-20 21:39:16 +00:00
2024-08-22 20:57:19 +00:00
2024-07-15 19:40:30 +00:00
2024-07-06 14:14:10 +00:00
2024-07-06 14:14:10 +00:00

This directory contains the core code needed for the browser process of a multi-process sandboxed browser.