From f90c5b8e926cad2bd21e93c523be5a1776e11796 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Wed, 20 May 2009 10:49:07 +0200 Subject: Text from a 2000-12-21 email by Roland McGrath. Message-Id: <200012210724.eBL7OHv09671@neuralgia.linnaean.org> --- hurd/libstore/copy_store.mdwn | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'hurd/libstore/copy_store.mdwn') diff --git a/hurd/libstore/copy_store.mdwn b/hurd/libstore/copy_store.mdwn index 808470ec..c0a25d7d 100644 --- a/hurd/libstore/copy_store.mdwn +++ b/hurd/libstore/copy_store.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009 Free Software Foundation, +[[!meta copyright="Copyright © 2000, 2007, 2008, 2009 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -10,3 +10,14 @@ is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="copy store: copy-on-write; discard changes on termination"]] + +A *copy* store is meaningful only with respect to a child store. What a *copy* +store does is to read the child store's entire contents into memory at startup +time and then use that buffer as the contents of the store thereafter. (The +code for this is in `libstore/copy.c`.) + +Because of how the interfaces are specified, reading the entire contents of a +[[*zero* store|zero store]] in fact means just `vm_allocate`ing fresh memory. +So, a *copy* store based on a [[*zero* store|zero store]] is just what you'd +get from `vm_allocate`ing some memory and passing it into +`store_buffer_create`. -- cgit v1.2.3