зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1342887 - Detect and log failures to dispatch SetupMacCommandLine to the main thread. r=rstrong
MozReview-Commit-ID: LMoxF5yfXq2 --HG-- extra : rebase_source : c206e32bf8abf1aa225901ff5cde390a8a2ecec7
This commit is contained in:
Родитель
9b5a05cf1d
Коммит
ba8c46feca
|
@ -108,14 +108,24 @@ UpdateDriverSetupMacCommandLine(int& argc, char**& argv, bool restart)
|
||||||
// monitor to signal us when that happens, and block until then.
|
// monitor to signal us when that happens, and block until then.
|
||||||
Monitor monitor("nsUpdateDriver SetupMacCommandLine");
|
Monitor monitor("nsUpdateDriver SetupMacCommandLine");
|
||||||
|
|
||||||
NS_DispatchToMainThread(
|
nsresult rv = NS_DispatchToMainThread(
|
||||||
NS_NewRunnableFunction([&argc, &argv, restart, &monitor]() -> void
|
NS_NewRunnableFunction([&argc, &argv, restart, &monitor]() -> void
|
||||||
{
|
{
|
||||||
CommandLineServiceMac::SetupMacCommandLine(argc, argv, restart);
|
CommandLineServiceMac::SetupMacCommandLine(argc, argv, restart);
|
||||||
MonitorAutoLock(monitor).Notify();
|
MonitorAutoLock(monitor).Notify();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
MonitorAutoLock(monitor).Wait();
|
if (NS_FAILED(rv)) {
|
||||||
|
LOG(("Update driver error dispatching SetupMacCommandLine to main thread: %d\n", rv));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The length of this wait is arbitrary, but should be long enough that having
|
||||||
|
// it expire means something is seriously wrong.
|
||||||
|
rv = MonitorAutoLock(monitor).Wait(PR_SecondsToInterval(60));
|
||||||
|
if (NS_FAILED(rv)) {
|
||||||
|
LOG(("Update driver timed out waiting for SetupMacCommandLine: %d\n", rv));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче