Retrieve the last error from the proper thread (#3649)

Previously, the last error was a global static. Now it is a thread-specific
value, which means we need to visit the UI thread to read the value.
This commit is contained in:
Adam Barth 2017-05-04 21:30:39 -07:00 committed by GitHub
parent 0efcb4a618
commit 9cfc67ef57

View File

@ -102,8 +102,14 @@ void RunNonInteractive(ftl::CommandLine initial_command_line,
test_runner.platform_view().engine().GetLoadScriptError();
if (error == tonic::kNoError)
error = task_observer.last_error();
if (error == tonic::kNoError)
error = tonic::DartMicrotaskQueue::GetForCurrentThread()->GetLastError();
if (error == tonic::kNoError) {
ftl::AutoResetWaitableEvent latch;
blink::Threads::UI()->PostTask([&error, &latch] {
error = tonic::DartMicrotaskQueue::GetForCurrentThread()->GetLastError();
latch.Signal();
});
latch.Wait();
}
// The script has completed and the engine may not be in a clean state,
// so just stop the process.