mirror of
https://github.com/NixOS/nix.git
synced 2025-11-15 23:12:44 +01:00
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