Add Store nesting to fix import-from-derivation within filterSource
This commit is contained in:
		
							parent
							
								
									98a2adb135
								
							
						
					
					
						commit
						4bc00760f9
					
				
					 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