Chromium Code Reviews| Index: src/IceInstrumentation.cpp | 
| diff --git a/src/IceInstrumentation.cpp b/src/IceInstrumentation.cpp | 
| index 0cd218abcbdbd7df2507cab8808dbcfdb7db5c20..b816a15d0a38ea5d62f99fe6552382a696f1f5ed 100644 | 
| --- a/src/IceInstrumentation.cpp | 
| +++ b/src/IceInstrumentation.cpp | 
| @@ -118,4 +118,17 @@ void Instrumentation::instrumentInst(LoweringContext &Context) { | 
| } | 
| } | 
| +void Instrumentation::setHasSeenGlobals() { | 
| + std::unique_lock<std::mutex> GlobalsLock(GlobalsSeenMutex); | 
| 
 
Jim Stichnoth
2016/07/19 22:39:00
I think this could be simpler:
void Instrumentati
 
tlively
2016/07/19 23:20:14
Done.
 
 | 
| + HasSeenGlobals = true; | 
| + GlobalsLock.unlock(); | 
| + GlobalsSeenCV.notify_all(); | 
| +} | 
| + | 
| +LockedPtr<VariableDeclarationList> Instrumentation::getGlobals() { | 
| + std::unique_lock<std::mutex> GlobalsLock(GlobalsSeenMutex); | 
| + GlobalsSeenCV.wait(GlobalsLock, [&] { return HasSeenGlobals; }); | 
| 
 
Jim Stichnoth
2016/07/19 22:39:00
Instead of default capture, can you capture "this"
 
tlively
2016/07/19 23:20:14
Done.
 
 | 
| + return Ctx->getGlobals(); | 
| +} | 
| + | 
| } // end of namespace Ice |