Index: device/serial/serial_io_handler.cc |
diff --git a/device/serial/serial_io_handler.cc b/device/serial/serial_io_handler.cc |
index b73d532d09ebb797263095e4f264799ceb74cb99..70f90a6135a83a2d28f5c869eb562b4f3c104edd 100644 |
--- a/device/serial/serial_io_handler.cc |
+++ b/device/serial/serial_io_handler.cc |
@@ -11,6 +11,8 @@ |
#include "base/files/file_path.h" |
#include "base/location.h" |
#include "base/strings/string_util.h" |
+#include "base/task_scheduler/post_task.h" |
+#include "base/task_scheduler/task_traits.h" |
#include "build/build_config.h" |
#if defined(OS_CHROMEOS) |
@@ -21,10 +23,8 @@ |
namespace device { |
SerialIoHandler::SerialIoHandler( |
- scoped_refptr<base::SingleThreadTaskRunner> file_thread_task_runner, |
scoped_refptr<base::SingleThreadTaskRunner> ui_thread_task_runner) |
- : file_thread_task_runner_(file_thread_task_runner), |
- ui_thread_task_runner_(ui_thread_task_runner) { |
+ : ui_thread_task_runner_(ui_thread_task_runner) { |
options_.bitrate = 9600; |
options_.data_bits = serial::DataBits::EIGHT; |
options_.parity_bit = serial::ParityBit::NO_PARITY; |
@@ -44,7 +44,6 @@ void SerialIoHandler::Open(const std::string& port, |
DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); |
DCHECK(open_complete_.is_null()); |
open_complete_ = callback; |
- DCHECK(file_thread_task_runner_.get()); |
DCHECK(ui_thread_task_runner_.get()); |
MergeConnectionOptions(options); |
port_ = port; |
@@ -63,9 +62,11 @@ void SerialIoHandler::Open(const std::string& port, |
port, base::Bind(&SerialIoHandler::OnPathOpened, this, task_runner), |
base::Bind(&SerialIoHandler::OnPathOpenError, this, task_runner))); |
#else |
- file_thread_task_runner_->PostTask( |
- FROM_HERE, base::Bind(&SerialIoHandler::StartOpen, this, port, |
- base::ThreadTaskRunnerHandle::Get())); |
+ base::PostTaskWithTraits( |
+ FROM_HERE, |
+ {base::MayBlock(), base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, |
+ base::Bind(&SerialIoHandler::StartOpen, this, port, |
+ base::ThreadTaskRunnerHandle::Get())); |
#endif // defined(OS_CHROMEOS) |
} |
@@ -126,7 +127,6 @@ void SerialIoHandler::StartOpen( |
const std::string& port, |
scoped_refptr<base::SingleThreadTaskRunner> io_task_runner) { |
DCHECK(!open_complete_.is_null()); |
- DCHECK(file_thread_task_runner_->RunsTasksInCurrentSequence()); |
DCHECK(!file_.IsValid()); |
// It's the responsibility of the API wrapper around SerialIoHandler to |
// validate the supplied path against the set of valid port names, and |
@@ -170,9 +170,9 @@ bool SerialIoHandler::PostOpen() { |
void SerialIoHandler::Close() { |
if (file_.IsValid()) { |
- DCHECK(file_thread_task_runner_.get()); |
- file_thread_task_runner_->PostTask( |
+ base::PostTaskWithTraits( |
FROM_HERE, |
+ {base::MayBlock(), base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, |
base::Bind(&SerialIoHandler::DoClose, Passed(std::move(file_)))); |
} |
} |