8dd249a
Hold room lock through the entirety of a `room_transaction`
Click to expand commit body
Previously, when the host repeatedly sent `UpdateWorktree` messages,
new guests attempting to join a project would observe a severe slowdown
caused by a database serialization error (e.g., the coherence of the data
would get violated midway through `Database::join_project` due to worktree
entries being mutated as the user joined). Writing entries is pretty fast,
whereas reading all of them for a project can take more than 100ms.
Transactions that failed due to a serialization error are retried, but the guest
would keep retrying until the host finished writing because the guest's read
was slow.
This commit changes the semantics of `room_transaction` to acquire a room
lock before even starting the transaction and holding it all the way after
commit (storing it, as before, in the `RoomGuard`). This ensures that a fast
writer (the host) can't starve a slow reader (the guest), allowing the latter
to make progress by temporarily pausing writes by the former.
Antonio Scandurra
created
24fcad3
Merge pull request #2189 from zed-industries/labeled-tasks
1683a54
Merge pull request #2195 from zed-industries/add-reveal-in-finder-to-additional-locations
Joseph T. Lyons
created
1448861
Merge pull request #2196 from zed-industries/open_urls
Click to expand commit body
Fix open URLs, restarts, and make bundling easier to use
Mikayla Maki
created
cf4e719
Fixes a race condition in the restart implementation
Click to expand commit body
Fixes open_urls racing workspace initialization and causing a double-open (community#927)
Adds a -d flag to the bundle script to compile in debug mode
Co-Authored-by: Max <max@zed.dev>
Mikayla Maki
and
Max
created
8c3232b
Add `reveal in finder` to additional locations
Click to expand commit body
Co-Authored-By: Julia <30666851+ForLoveOfCats@users.noreply.github.com>
3fb6e31
revert for loop change and store matched actions in a sorted set instead
Kay Simmons
created
04df00b
Iterate over keymap then dispatch path when matching keybindings to make precedence more intuitive
Click to expand commit body
Rename action which adds the active tab to the dock to be more intuitive
Add action which moves the active tab out of the dock and bind it to the same keybinding