RemoteStore: Add option to drop old connections from the pool
This is a hack to make hydra-queue-runner free its temproots periodically, thereby ensuring that garbage collection of the corresponding paths is not blocked until the queue runner is restarted. It would be better if temproots could be released earlier than at process exit. I started working on a RAII object returned by functions like addToStore() that releases temproots. However, this would be a pretty massive change so I gave up on it for now.
This commit is contained in:
		
							parent
							
								
									308ecf6361
								
							
						
					
					
						commit
						89dc62c174
					
				
					 3 changed files with 31 additions and 1 deletions
				
			
		|  | @ -168,6 +168,16 @@ public: | |||
|     { | ||||
|         return state.lock()->max; | ||||
|     } | ||||
| 
 | ||||
|     void flushBad() | ||||
|     { | ||||
|         auto state_(state.lock()); | ||||
|         std::vector<ref<R>> left; | ||||
|         for (auto & p : state_->idle) | ||||
|             if (validator(p)) | ||||
|                 left.push_back(p); | ||||
|         std::swap(state_->idle, left); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue