Index: chrome/browser/service/service_process_control.cc |
diff --git a/chrome/browser/service/service_process_control.cc b/chrome/browser/service/service_process_control.cc |
index fcef987bdd27db386f6fcd72049b510258d704a2..f8798598637b598c20e6feea12a2c452f81c0e76 100644 |
--- a/chrome/browser/service/service_process_control.cc |
+++ b/chrome/browser/service/service_process_control.cc |
@@ -9,6 +9,7 @@ |
#include "base/process_util.h" |
#include "base/stl_util-inl.h" |
#include "base/thread.h" |
+#include "base/thread_restrictions.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/browser_thread.h" |
#include "chrome/browser/io_thread.h" |
@@ -55,7 +56,14 @@ class ServiceProcessControl::Launcher |
void DoDetectLaunched(Task* task) { |
const uint32 kMaxLaunchDetectRetries = 10; |
- launched_ = CheckServiceProcessReady(); |
+ { |
+ // We should not be doing blocking disk IO from this thread! |
+ // Temporarily allowed until we fix |
+ // http://code.google.com/p/chromium/issues/detail?id=60207 |
+ base::ThreadRestrictions::ScopedAllowIO allow_io; |
+ launched_ = CheckServiceProcessReady(); |
+ } |
+ |
if (launched_ || (retry_count_ >= kMaxLaunchDetectRetries)) { |
BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, |
NewRunnableMethod(this, &Launcher::Notify, task)); |