Simplify the callback mechanism
This commit is contained in:
		
							parent
							
								
									1672bcd230
								
							
						
					
					
						commit
						81ea8bd5ce
					
				
					 16 changed files with 152 additions and 180 deletions
				
			
		| 
						 | 
				
			
			@ -629,17 +629,15 @@ uint64_t LocalStore::addValidPath(State & state,
 | 
			
		|||
 | 
			
		||||
 | 
			
		||||
void LocalStore::queryPathInfoUncached(const Path & path,
 | 
			
		||||
    std::function<void(std::shared_ptr<ValidPathInfo>)> success,
 | 
			
		||||
    std::function<void(std::exception_ptr exc)> failure)
 | 
			
		||||
    Callback<std::shared_ptr<ValidPathInfo>> callback)
 | 
			
		||||
{
 | 
			
		||||
    sync2async<std::shared_ptr<ValidPathInfo>>(success, failure, [&]() {
 | 
			
		||||
 | 
			
		||||
    try {
 | 
			
		||||
        auto info = std::make_shared<ValidPathInfo>();
 | 
			
		||||
        info->path = path;
 | 
			
		||||
 | 
			
		||||
        assertStorePath(path);
 | 
			
		||||
 | 
			
		||||
        return retrySQLite<std::shared_ptr<ValidPathInfo>>([&]() {
 | 
			
		||||
        callback(retrySQLite<std::shared_ptr<ValidPathInfo>>([&]() {
 | 
			
		||||
            auto state(_state.lock());
 | 
			
		||||
 | 
			
		||||
            /* Get the path info. */
 | 
			
		||||
| 
						 | 
				
			
			@ -679,8 +677,9 @@ void LocalStore::queryPathInfoUncached(const Path & path,
 | 
			
		|||
                info->references.insert(useQueryReferences.getStr(0));
 | 
			
		||||
 | 
			
		||||
            return info;
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
        }));
 | 
			
		||||
 | 
			
		||||
    } catch (...) { callback.rethrow(); }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue