forked from prefix-dev/rip
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor: remove all lifetimes from PackageDb and WheelBuilder to sim…
…plify code (prefix-dev#186) Removes the lifetimes from `WheelBuilder` and `resolve` in favor of some `Arc`s. I assume this will have only a very minimal impact on performance/memory usage but it makes the code a hell of a lot easier to understand. The motivation to remove them is for concurrency where I often want to `tokio::spawn` stuff. This requires that the future is `'static` which is often not possible with all the lifetimes we used. Most likely some lifetimes could be returned in the `resolve` function (which don't bubble through the rest of the code) but we can do that later. Some of the things I turned into Arcs: * `PackageDb`: we often want to share this between different tasks and datastructures. * `WheelTags`: this can amount to a lot of data so I thought it would be worth to wrap in an Arc. * `MarkerEnvironment`: takes up some memory, probably not worth cloning all over the place. * `ArtifactInfo`: This one bubbled the `'db` lifetime through to everything. I simply used `Arc<ArtifactInfo>` now.
- Loading branch information
1 parent
15a9215
commit fd843c6
Showing
8 changed files
with
310 additions
and
315 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains 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
Oops, something went wrong.