Disable EvalCache in impure mode

This commit is contained in:
Eelco Dolstra 2019-06-07 22:38:39 +02:00
parent 6644b6099b
commit c47d2dac6c
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -1,5 +1,6 @@
#include "eval-cache.hh" #include "eval-cache.hh"
#include "sqlite.hh" #include "sqlite.hh"
#include "eval.hh"
#include <set> #include <set>
@ -62,6 +63,8 @@ void EvalCache::addDerivation(
const std::string & attrPath, const std::string & attrPath,
const Derivation & drv) const Derivation & drv)
{ {
if (!evalSettings.pureEval) return;
auto state(_state->lock()); auto state(_state->lock());
if (state->fingerprints.insert(fingerprint).second) if (state->fingerprints.insert(fingerprint).second)
@ -81,6 +84,8 @@ std::optional<EvalCache::Derivation> EvalCache::getDerivation(
const Fingerprint & fingerprint, const Fingerprint & fingerprint,
const std::string & attrPath) const std::string & attrPath)
{ {
if (!evalSettings.pureEval) return {};
auto state(_state->lock()); auto state(_state->lock());
auto queryAttribute(state->queryAttribute.use() auto queryAttribute(state->queryAttribute.use()