| Index: update_attempter.cc
|
| diff --git a/update_attempter.cc b/update_attempter.cc
|
| index e49a5511dda029f49c64b549643dcc5bf242f69e..c9ee712809e30d7b39680bc1620dddb1d0366529 100644
|
| --- a/update_attempter.cc
|
| +++ b/update_attempter.cc
|
| @@ -248,7 +248,9 @@ void UpdateAttempter::Update(const std::string& app_version,
|
| postinstall_runner_action.get());
|
|
|
| SetStatusAndNotify(UPDATE_STATUS_CHECKING_FOR_UPDATE);
|
| - processor_->StartProcessing();
|
| +
|
| + // Start the processing asynchronously to unblock the event loop.
|
| + g_idle_add(&StaticStartProcessing, this);
|
| }
|
|
|
| void UpdateAttempter::CheckForUpdate(const std::string& app_version,
|
| @@ -527,6 +529,11 @@ gboolean UpdateAttempter::StaticManagePriorityCallback(gpointer data) {
|
| return reinterpret_cast<UpdateAttempter*>(data)->ManagePriorityCallback();
|
| }
|
|
|
| +gboolean UpdateAttempter::StaticStartProcessing(gpointer data) {
|
| + reinterpret_cast<UpdateAttempter*>(data)->processor_->StartProcessing();
|
| + return FALSE; // Don't call this callback again.
|
| +}
|
| +
|
| bool UpdateAttempter::ManagePriorityCallback() {
|
| SetPriority(utils::kProcessPriorityNormal);
|
| manage_priority_source_ = NULL;
|
|
|