Merge pull request #1358 from shlevy/store-nesting
Add Store nesting to fix import-from-derivation within filterSource
This commit is contained in:
		
						commit
						39b08f4c0c
					
				
					 2 changed files with 18 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -414,7 +414,9 @@ Path RemoteStore::addToStore(const string & name, const Path & _srcPath,
 | 
			
		|||
    try {
 | 
			
		||||
        conn->to.written = 0;
 | 
			
		||||
        conn->to.warn = true;
 | 
			
		||||
        connections->incCapacity();
 | 
			
		||||
        dumpPath(srcPath, conn->to, filter);
 | 
			
		||||
        connections->decCapacity();
 | 
			
		||||
        conn->to.warn = false;
 | 
			
		||||
        conn->processStderr();
 | 
			
		||||
    } catch (SysError & e) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,6 +68,22 @@ public:
 | 
			
		|||
        state_->max = max;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void incCapacity()
 | 
			
		||||
    {
 | 
			
		||||
        auto state_(state.lock());
 | 
			
		||||
        state_->max++;
 | 
			
		||||
        /* we could wakeup here, but this is only used when we're
 | 
			
		||||
         * about to nest Pool usages, and we want to save the slot for
 | 
			
		||||
         * the nested use if we can
 | 
			
		||||
         */
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void decCapacity()
 | 
			
		||||
    {
 | 
			
		||||
        auto state_(state.lock());
 | 
			
		||||
        state_->max--;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ~Pool()
 | 
			
		||||
    {
 | 
			
		||||
        auto state_(state.lock());
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue