From bc47f40b0dd352d3bf9dc8228fbf0279ac67e907 Mon Sep 17 00:00:00 2001 From: Nathan Harmata Date: Wed, 13 Jul 2016 16:22:30 +0000 Subject: Re-implement variables in the blaze query language. Instead of using a mutable global context of variable bindings, pass around immutable local contexts. The motivation is so we can safely evaluate all blaze query expressions concurrently under the hood. A global context is hostile to this goal. -- MOS_MIGRATED_REVID=127324600 --- .../google/devtools/build/lib/query2/engine/SomeFunction.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/query2/engine/SomeFunction.java') diff --git a/src/main/java/com/google/devtools/build/lib/query2/engine/SomeFunction.java b/src/main/java/com/google/devtools/build/lib/query2/engine/SomeFunction.java index d6885e44f6..8560992f93 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/engine/SomeFunction.java +++ b/src/main/java/com/google/devtools/build/lib/query2/engine/SomeFunction.java @@ -49,11 +49,14 @@ class SomeFunction implements QueryFunction { } @Override - public void eval(QueryEnvironment env, QueryExpression expression, - List args, final Callback callback) - throws QueryException, InterruptedException { + public void eval( + QueryEnvironment env, + VariableContext context, + QueryExpression expression, + List args, + final Callback callback) throws QueryException, InterruptedException { final AtomicBoolean someFound = new AtomicBoolean(false); - env.eval(args.get(0).getExpression(), new Callback() { + env.eval(args.get(0).getExpression(), context, new Callback() { @Override public void process(Iterable partialResult) throws QueryException, InterruptedException { if (someFound.get() || Iterables.isEmpty(partialResult)) { -- cgit v1.2.3