mirror of
https://github.com/NixOS/nix.git
synced 2025-12-01 06:31:00 +01:00
Lazily copy trees to the store
We now mount lazy accessors on top of /nix/store without materializing them, and only materialize them to the real store if needed (e.g. in the `derivation` primop).
This commit is contained in:
parent
c891554999
commit
febd28db87
14 changed files with 122 additions and 50 deletions
|
|
@ -81,6 +81,15 @@ struct MountedSourceAccessorImpl : MountedSourceAccessor
|
|||
// FIXME: thread-safety
|
||||
mounts.insert_or_assign(std::move(mountPoint), accessor);
|
||||
}
|
||||
|
||||
std::shared_ptr<SourceAccessor> getMount(CanonPath mountPoint) override
|
||||
{
|
||||
auto i = mounts.find(mountPoint);
|
||||
if (i != mounts.end())
|
||||
return i->second;
|
||||
else
|
||||
return nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
ref<MountedSourceAccessor> makeMountedSourceAccessor(std::map<CanonPath, ref<SourceAccessor>> mounts)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue