perf: batch path changes via PathsMut on Windows#94
Merged
sapphi-red merged 1 commit intoMay 19, 2026
Conversation
Implement `Watcher::paths_mut` for the Windows backend so that bulk add/remove operations cross the server-thread channel as a single `Action::StageAndCommit` message instead of N `Action::Watch`/`Action::Unwatch` messages with N acks. Each staged change still goes through the existing per-path `add_watch`/`remove_watch`, so individual semantics and the event filter are unchanged. Cuts ~27-37% off the `windows_paths_mut` bench at 100-1000 paths by amortizing the channel round-trip across the batch.
Merged
sapphi-red
pushed a commit
that referenced
this pull request
May 20, 2026
## 🤖 New release * `rolldown-notify`: 10.3.1 -> 10.4.0 (✓ API compatible changes) * `rolldown-notify-debouncer-mini`: 0.8.7 -> 0.8.8 * `rolldown-notify-debouncer-full`: 0.7.7 -> 0.7.8 <details><summary><i><b>Changelog</b></i></summary><p> ## `rolldown-notify` <blockquote> ## [10.4.0](rolldown-notify-v10.3.1...rolldown-notify-v10.4.0) - 2026-05-20 ### Added - consolidate paths further more for fsevents backend if needed ([#91](#91)) ### Other - consolidate watch paths via `ConsolidatingPathTrie` on Windows ([#93](#93)) - batch path changes via `PathsMut` on Windows ([#94](#94)) </blockquote> ## `rolldown-notify-debouncer-mini` <blockquote> ## [0.8.8](rolldown-notify-debouncer-mini-v0.8.7...rolldown-notify-debouncer-mini-v0.8.8) - 2026-05-20 ### Other - updated the following local packages: rolldown-notify </blockquote> ## `rolldown-notify-debouncer-full` <blockquote> ## [0.7.8](rolldown-notify-debouncer-full-v0.7.7...rolldown-notify-debouncer-full-v0.7.8) - 2026-05-20 ### Other - updated the following local packages: rolldown-notify </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/). Co-authored-by: rolldown-guard[bot] <278280044+rolldown-guard[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implement
Watcher::paths_mutfor the Windows backend so that bulk add/remove operations cross the server-thread channel as a singleAction::StageAndCommitmessage instead of NAction::Watch/Action::Unwatchmessages with N acks. Each staged change still goes through the existing per-pathadd_watch/remove_watch, so individual semantics and the event filter are unchanged.Cuts ~27-37% off the
windows_paths_mutbench at 100-1000 paths by amortizing the channel round-trip across the batch.