Reviewers: sammccall
Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D69328
#include "TUScheduler.h"
#include "Cancellation.h"
#include "Compiler.h"
+#include "Context.h"
#include "Diagnostics.h"
#include "GlobalCompilationDatabase.h"
#include "Logger.h"
llvm::unique_function<void()> Action) {
if (!PreambleTasks)
return Action();
- PreambleTasks->runAsync(Name, std::move(Action));
+ PreambleTasks->runAsync(Name, [Ctx = Context::current().clone(),
+ Action = std::move(Action)]() mutable {
+ WithContext WC(std::move(Ctx));
+ Action();
+ });
}
void TUScheduler::runWithAST(
S.run("add 2", [&] { Counter += 2; });
ASSERT_TRUE(S.blockUntilIdle(timeoutSeconds(10)));
EXPECT_EQ(Counter.load(), 3);
+
+ Notification TaskRun;
+ Key<int> TestKey;
+ WithContextValue CtxWithKey(TestKey, 10);
+ S.run("props context", [&] {
+ EXPECT_EQ(Context::current().getExisting(TestKey), 10);
+ TaskRun.notify();
+ });
+ TaskRun.wait();
}
TEST_F(TUSchedulerTests, TUStatus) {