* nix-store, nix-instantiate: added an option `--add-root' to
immediately add the result as a permanent GC root.  This is the only
  way to prevent a race with the garbage collector.  For instance, the
  old style
    ln -s $(nix-store -r $(nix-instantiate foo.nix)) \
      /nix/var/nix/gcroots/result
  has two time windows in which the garbage collector can interfere
  (by GC'ing the derivation and the output, respectively).  On the
  other hand,
    nix-store --add-root /nix/var/nix/gcroots/result -r \
      $(nix-instantiate --add-root /nix/var/nix/gcroots/drv \
        foo.nix)
  is safe.
* nix-build: use `--add-root' to prevent GC races.
			
			
This commit is contained in:
		
							parent
							
								
									a6b65fd5e1
								
							
						
					
					
						commit
						dcc37c236c
					
				
					 11 changed files with 165 additions and 17 deletions
				
			
		|  | @ -17,6 +17,10 @@ void run(Strings args); | |||
| /* Should print a help message to stdout and return. */ | ||||
| void printHelp(); | ||||
| 
 | ||||
| /* Ugh.  No better place to put this. */ | ||||
| Path makeRootName(const Path & gcRoot, int & counter); | ||||
| void printGCWarning(); | ||||
| 
 | ||||
| 
 | ||||
| extern string programId; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue