Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1266)

Unified Diff: chrome/browser/chromeos/system_logs/debug_log_writer.cc

Issue 2890583003: Remove usage of SequencedWorkerPool::GetNamedSequenceToken from debug_log_writer.cc. (Closed)
Patch Set: self-review Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/chromeos/system_logs/debug_log_writer.cc
diff --git a/chrome/browser/chromeos/system_logs/debug_log_writer.cc b/chrome/browser/chromeos/system_logs/debug_log_writer.cc
index 671a826ff3d8da6c7bec79a01b0967d23e582ff0..16d949470c26cc66a5739c8597ff1027c4040093 100644
--- a/chrome/browser/chromeos/system_logs/debug_log_writer.cc
+++ b/chrome/browser/chromeos/system_logs/debug_log_writer.cc
@@ -13,10 +13,10 @@
#include "base/command_line.h"
#include "base/files/file.h"
#include "base/files/file_util.h"
+#include "base/lazy_instance.h"
#include "base/process/kill.h"
#include "base/process/launch.h"
#include "base/task_scheduler/post_task.h"
-#include "base/threading/sequenced_worker_pool.h"
#include "chrome/common/logging_chrome.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/debug_daemon_client.h"
@@ -32,13 +32,15 @@ typedef base::Callback<void(bool succeeded)> CommandCompletionCallback;
const char kGzipCommand[] = "/bin/gzip";
const char kTarCommand[] = "/bin/tar";
-scoped_refptr<base::SequencedTaskRunner> GetSequencedTaskRunner(
- const std::string sequence_name) {
- base::SequencedWorkerPool* pool = content::BrowserThread::GetBlockingPool();
- return pool->GetSequencedTaskRunnerWithShutdownBehavior(
- pool->GetNamedSequenceToken(sequence_name),
- base::SequencedWorkerPool::BLOCK_SHUTDOWN);
-}
+struct DebugLogWriterTaskRunner {
+ const scoped_refptr<base::SequencedTaskRunner> task_runner =
+ base::CreateSequencedTaskRunnerWithTraits(
+ {base::MayBlock(), base::TaskPriority::BACKGROUND,
+ base::TaskShutdownBehavior::BLOCK_SHUTDOWN});
+};
+
+base::LazyInstance<DebugLogWriterTaskRunner>::Leaky g_sequenced_task_runner =
+ LAZY_INSTANCE_INITIALIZER;
// Called upon completion of |WriteDebugLogToFile|. Closes file
// descriptor, deletes log file in the case of failure and calls
@@ -50,7 +52,7 @@ void WriteDebugLogToFileCompleted(
bool succeeded) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (!succeeded) {
- bool posted = GetSequencedTaskRunner(sequence_token_name)->PostTaskAndReply(
+ bool posted = g_sequenced_task_runner.Get().task_runner->PostTaskAndReply(
FROM_HERE,
base::Bind(base::IgnoreResult(&base::DeleteFile), file_path, false),
base::Bind(callback, file_path, false));
@@ -81,9 +83,8 @@ void WriteDebugLogToFile(std::unique_ptr<base::File> file,
callback));
// Close the file on an IO-allowed thread.
- GetSequencedTaskRunner(sequence_token_name)
- ->PostTask(FROM_HERE,
- base::Bind(&base::DeletePointer<base::File>, file.release()));
+ g_sequenced_task_runner.Get().task_runner->DeleteSoon(FROM_HERE,
+ file.release());
}
// Runs command with its parameters as defined in |argv|.
@@ -227,13 +228,12 @@ void StartLogRetrieval(const base::FilePath& file_name_template,
int flags = base::File::FLAG_CREATE_ALWAYS | base::File::FLAG_WRITE;
std::unique_ptr<base::File> file(new base::File);
base::File* file_ptr = file.get();
- GetSequencedTaskRunner(sequence_token_name)
- ->PostTaskAndReply(
- FROM_HERE, base::Bind(&InitializeLogFile, base::Unretained(file_ptr),
- file_path, flags),
- base::Bind(&WriteDebugLogToFile, base::Passed(&file),
- sequence_token_name, file_path, should_compress,
- callback));
+ g_sequenced_task_runner.Get().task_runner->PostTaskAndReply(
+ FROM_HERE,
+ base::Bind(&InitializeLogFile, base::Unretained(file_ptr), file_path,
+ flags),
+ base::Bind(&WriteDebugLogToFile, base::Passed(&file), sequence_token_name,
+ file_path, should_compress, callback));
}
const char kDefaultSequenceName[] = "DebugLogWriter";
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698